Select Code From myTable
在一个jod,我有一个问题:
我有结果字符串:
Code
-----------
ABCD_12
EBC_11
DEEDC_1
当我查询数据时,我想取左边的链“_”
结果应该是:
Code
-------------
ABCD
EBC
DEEDC
谢谢
答案 0 :(得分:2)
我们可以使用 _
和 LEFT
在CHARINDEX
之前提取部分。
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];
<强> Find a demo here 强>
答案 1 :(得分:1)
试试这个:
select SUBSTRING(Code, CHARINDEX('_', Code) + 1, LEN(Code))