我有这样的字符串
开放系统 SUB GR (GM/BTIB(1111)/BTITDBL(2222)/BTVY(4444)/ACSVTYSAG)
在我的 GROUPS 列下的数据库中。
我想做的是从该字符串中提取 2222。我正在使用的代码就是这样。
SELECT
SUBSTRING(GROUPS, CHARINDEX('(',GROUPS, CHARINDEX('(',GROUPS, CHARINDEX('(',GROUPS,0)+1)+1)+1, 4 ) AS GroupNo
FROM MY_TABLE
WHERE
ISNUMERIC(SUBSTRING(GROUPS, CHARINDEX('(',GROUPS, CHARINDEX('(',GROUPS, CHARINDEX('(',GROUPS,0)+1)+1)+1, 4 )) = 1
我需要通过更改我正在使用的子字符串方式或更改一些逻辑来固定上面的代码。你能告诉我我的代码中有哪些地方可以改进吗?
最佳答案
您可以实现一个实现了 regex 的 CLR UDF .
关于sql-server - SQL Server,T-SQL 是否有更快的方法来对我的问题中的以下字符串进行子字符串化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2070238/