拆分字符串 SQL Server 中连字符之间的文本分隔符


Select Code From myTable

在一瞬间,我有一个问题:

我有结果字符串:

Code
-----------
ABCD_12
EBC_11
DEEDC_1

查询数据时,我想取左边"_"的链

结果应该是:

Code
-------------
ABCD
EBC
DEEDC

谢谢

我们可以使用LEFTCHARINDEX提取_之前的部分。

LEFT函数返回具有指定字符数的字符串的左侧部分。CHARINDEX函数返回搜索字符的位置。

查询

select left([code], charindex('_', [code], 1) - 1) as [code]
from [myTable];

更新:

如果任何字符串没有_,则使用CASE表达式检查字符串是否有_

查询

select left([code], 
case when  charindex('_', [code] ) = 0 then len([code]) 
else charindex('_', [code], 1) -1 end)
from [myTable];

在此处查找演示

试试这个:

select SUBSTRING(Code, CHARINDEX('_', Code) + 1, LEN(Code))

最新更新