[英]Getting last match between brackets
Company 1 [CRM] - Hong Kong - [10003086] (57464)
Company 2 [SHP] Shanghai - [10003086] (12532)
我试图从字符串中提取括号之间的第二次出现。 我试过的
SELECT
SUBSTRING(myid,CHARINDEX('(',myid)+1,(CHARINDEX(')',myid)-CHARINDEX('(',myid))-1) AS ID
FROM dbo.CRM
对于第一条记录,它返回我想要的数字“ 10003086”。 对于第二条记录,它返回“ [SHP]”。 如何确保查询始终返回最后找到的结果?
试试这个
DECLARE @str VARCHAR(100)= 'Company 1 [CRM] - Hong Kong - [10003086] (57464)',
@fst_pos INT,
@lst_pos INT
SELECT @fst_pos = Charindex('[', @str),
@lst_pos = Charindex(']', @str)
SELECT Substring(@str, Charindex('[', @str, @fst_pos+1) + 1, Charindex(']', @str, @lst_pos + 1) - Charindex('[', @str, @fst_pos + 1) - 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.