jef*_*eff 3 sql t-sql sql-server
如何在某个字符之前从sql查询返回字符串中的所有内容?
我的数据如下:
HD TV HM45VM - HDTV widescreen television set with 45" lcd
Run Code Online (Sandbox Code Playgroud)
我想限制或截断字符串以包括破折号之前的所有内容.
所以最终的结果将是"高清电视HM45VM"
使用SUBSTRING,但您必须使用CHARINDEX或PATINDEX来获取您想要子字符串停止的字符的位置:
SELECT SUBSTRING('HD TV HM45VM - HDTV widescreen television set with 45" lcd',
0,
CHARINDEX('-', 'HD TV HM45VM - HDTV widescreen television set with 45" lcd'))
Run Code Online (Sandbox Code Playgroud)
要做相反的事情 - 剥去连字符左边的所有内容 - 使用:
SELECT SUBSTRING('HD TV HM45VM - HDTV widescreen television set with 45" lcd',
CHARINDEX('-', 'HD TV HM45VM - HDTV widescreen television set with 45" lcd') + 1,
LEN('HD TV HM45VM - HDTV widescreen television set with 45" lcd'))
Run Code Online (Sandbox Code Playgroud)
有效地,将连字符的位置作为起点.然后你可以使用其中之一LEN
或DATALENGTH
功能.