RJI*_*IGO 11 sql-server substring
我有一个具有特定模式的字符串:
23;chair,red [$3]
即,一个数字后跟一个分号,然后是一个名称,后跟一个左方括号.
假设分号;始终存在且左方括号[始终存在于字符串中,如何在SQL Server查询中(和不包括);和[SQL Server查询之间提取文本?谢谢.
Mar*_*arc 21
结合SUBSTRING(),LEFT()和CHARINDEX()功能.
SELECT LEFT(SUBSTRING(YOUR_FIELD,
                      CHARINDEX(';', YOUR_FIELD) + 1, 100),
                      CHARINDEX('[', YOUR_FIELD) - 1)
FROM YOUR_TABLE;
这假设您的场长不会超过100,但如果需要,您可以通过使用该LEN()功能使其变得更聪明.我没有打扰,因为那里已经有足够的事情了,我没有一个实例可以测试,所以我只是看着我的括号等等.
小智 5
假设它们始终存在且不属于您的数据,这将起作用:
declare @string varchar(8000) = '23;chair,red [$3]'
select substring(@string, charindex(';', @string) + 1, charindex(' [', @string) - charindex(';', @string) - 1)