Utilisation de Regex dans SQL Server, je ne pouvais pas résoudre le problème suivant

J'ai des ficelles comme ça

SYSTÈMES OUVERTS SUB GR (GM / BTIB (1111) / BTITDBL (2222) / BTVY (4444) / ACSVTYSAG)

et j'ai besoin d'en extraire 2222.

Ce que je faisais est sur la string GROUPS:

SUBSTRING(GROUPS, CHARINDEX('(',GROUPS, CHARINDEX('(',GROUPS, CHARINDEX('(',GROUPS,0)+1)+1)+1, 4 ) AS GroupNo 

Cependant, je vois que ce n'est pas très efficace et on m'a dit de le faire en utilisant la regex. Je ne pouvais pas le résoudre. J'espère que si quelqu'un peut m'aider avec ça. Merci.

D'accord, je comprends maintenant ce dont vous avez besoin à partir de la 3ème parenthèse et ensuite de 4 numbers?

jeter un coup d'œil à

 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) 

SQL Server ne prend pas en charge nativement les expressions régulières.

Vous pouvez toutefois utiliser l'intégration CLR pour append une procédure stockée .NET qui peut utiliser des expressions régulières. Voir cet article pour une bonne explication.