sql - 字符串SQL左右case语句
问题描述
我正在尝试编写一个 case 语句以输出到“---”的左侧或右侧
这可以是 --- 之前或之后的任意数量的字符,
为了简单起见,我使用了下面的示例。
my productdescription = aaa---bbb
CASE WHEN productid = 'atbl%' THEN OUTPUT everything TO the LEFT OF "---" from the productdescription ( so OUTPUT aaa)
WHEN productid = 'atbr%' THEN OUTPUT everything TO the RIGHT OF "---" from the productdescription ( so OUTPUT bbb)
ELSE ''
END AS leftright
任何帮助将非常感激
解决方案
我认为您需要操作员LIKE
而不是=
(除非您productid
实际包含%
)。
对于MySql:
使用函数SUBSTRING_INDEX()
:
CASE
WHEN productid LIKE 'atbl%' THEN SUBSTRING_INDEX(productdescription, '---', 1)
WHEN productid LIKE 'atbr%' THEN SUBSTRING_INDEX(productdescription, '---', -1)
ELSE ''
END AS leftright
如果您使用的是SQL Server ,请使用LEFT()
,RIGHT()
和CHARINDEX()
:
CASE
WHEN productid LIKE 'atbl%' THEN LEFT(productdescription, CHARINDEX('---', productdescription) - 1)
WHEN productid LIKE 'atbr%' THEN RIGHT(productdescription, LEN(productdescription) - CHARINDEX('---', productdescription) - 2)
ELSE ''
END AS leftright
推荐阅读
- python - 在条目中输入一串文本后,使用 tkinter.place
- python - Tkinter 小部件 - 如何一次配置多个小部件?
- c# - 在 ASP.NET Core API 2.1 中发送带有非 ASCII 字符标头的请求
- java - 无法在@OneToMany 关系弹簧数据 jpa 中删除
- ios - Apple 是否允许从非消耗性 IAP 更改为订阅?
- selenium - Selenium WebDriver:无法在 Java 中找到链接注销
- c - 多线程编程矩阵乘法
- wordpress - 只有默认的永久链接工作 WordPress,其他永久链接选项变为 404 错误
- python - Python Fit 圆心在图像之外
- c - 在无限循环中同步父子节点