我有这样的字符串
OPEN SYSTEMS SUB GR(GM / BTIB(1111)/ BTITDBL(2222)/ BTVY(4444)/ ACSVTYSAG)
我需要从中提取2222。
我在GROUPS字符串上做了什么:
SUBSTRING(GROUPS, CHARINDEX('(',GROUPS, CHARINDEX('(',GROUPS, CHARINDEX('(',GROUPS,0)+1)+1)+1, 4 ) AS GroupNo
然而,我发现效率并不高,而且我被告知要使用正则表达式。我无法解决它。我希望有人能帮助我。 感谢。
答案 0 :(得分:1)
好的,我现在明白你需要从第3个括号开始,然后是4位数?
看看
Declare @Data varchar(8000)
select @Data='OPEN SYSTEMS SUB GR (GM/BTIB(1111)/BTITDBL(2222)/BTVY(4444)/ACSVTYSAG)'
select left(parsename(left(replace(@data,'(','.'),
len(@data) - PATINDEX('%(%',reverse(@data))),1),4)
答案 1 :(得分:0)
SQL Server本身不支持正则表达式。
但是,您可以使用CLR集成添加可以使用正则表达式的.NET存储过程。请参阅this article以获得更好的解释。