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]'。如何确保查询始终返回最后找到的结果?
答案 0 :(得分:1)
试试这种方式
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)