日期:2014-05-18  浏览次数:20446 次

SQL语句中截取字符的写法?
比如象 "SN   0352-1995 "这样的字段,我要截取   -   之前的数值,最后值为   "SN   0352 "
SQL里怎么写?

------解决方案--------------------
用charindex定位 '- '
然后用substring 或left即可
------解决方案--------------------
Declare @str Varchar(20)
Set @str= 'SN 0352-1995 '
Select @str
Select Left(@str,CharIndex( '- ',@str)-1) As 截取后的值
---结果
/*
--------------------
SN 0352-1995

(所影响的行数为 1 行)

截取后的值
--------------------
SN 0352

(所影响的行数为 1 行)
*/
------解决方案--------------------
declare @s as varchar(20)
set @s = 'SN 0352-1995 '

set @s = left(@s,charindex( '- ',@s)-1)

print @s

/*
SN 0352
*/