SQL Server中连字符之间的拆分字符串文本分隔符
在工作中,我遇到了一个问题: 我有一个结果字符串:SQL Server中连字符之间的拆分字符串文本分隔符,sql,sql-server,Sql,Sql Server,在工作中,我遇到了一个问题: 我有一个结果字符串: Select Code From myTable 当我查询数据时,我想取左边的链“\ux” 结果应该是: Code ----------- ABCD_12 EBC_11 DEEDC_1 谢谢我们可以使用左和CHARINDEX提取之前的零件 LEFT函数返回具有指定字符数的字符串的左侧部分。函数返回所搜索字符的位置 查询 Code ------------- ABCD EBC DEEDC
Select Code From myTable
当我查询数据时,我想取左边的链“\ux”
结果应该是:
Code
-----------
ABCD_12
EBC_11
DEEDC_1
谢谢我们可以使用
左
和CHARINDEX
提取
之前的零件
LEFT
函数返回具有指定字符数的字符串的左侧部分。函数返回所搜索字符的位置
查询
Code
-------------
ABCD
EBC
DEEDC
select left([code], charindex('_', [code], 1) - 1) as [code]
from [myTable];
更新: 如果任何字符串没有
。
,则使用大小写表达式检查该字符串是否有。
查询
Code
-------------
ABCD
EBC
DEEDC
select left([code], charindex('_', [code], 1) - 1) as [code]
from [myTable];
试试这个:
select left([code],
case when charindex('_', [code] ) = 0 then len([code])
else charindex('_', [code], 1) -1 end)
from [myTable];
它工作,但结果是:在“12 11 1我想要留下数据”之后,它不工作。错误:传递给LEFT或SUBSTRING函数的长度参数无效。