Как получить какую-то часть строки, если ее появляется больше, чем в строке таблицы SQL? - PullRequest
0 голосов
/ 31 января 2019

Я хочу получить часть кода в поле Action из таблицы #Table.Я создал образец набора данных с помощью скрипта вставки.

Create Table #Tabel1 (Action varchar(1000));
Insert #Tabel1 (action) values ('ID573')
Insert #Tabel1 (action) values('ID573')
Insert #Tabel1 (action) values ('ID573 S00537 ZS08945L13')
Insert #Tabel1 (action) values ('T02276 ( F22 , CD5741 ; F23 , CD5731 )')
Insert #Tabel1 (action) values ('T02276 ( F22 , CD5740 ; F23 , CD5730 )')
Insert #Tabel1 (action) values ('ID581')
Insert #Tabel1 (action) values ('ID581')
Insert #Tabel1 (action) values ('ID581')
Insert #Tabel1 (action) values ('ID581')
Insert #Tabel1 (action) values ('ID581')
Insert #Tabel1 (action) values ('T02276 ( F22 , CD5821 ; F23 , CD5811 )')
Insert #Tabel1 (action) values ('T02276 ( F22 , CD5820 ; F23 , CD5810 )')




SELECT DISTINCT Substring (action, Patindex('%[D][0-9][0-9][0-9]%', action), 4) 
                AS Action 
FROM   #tabel1 
WHERE  action LIKE '%[D][0-9][0-9][0-9]%' 
       AND [action] NOT LIKE '%[I][D][0-9][0-9][0-9]%' 

Текущий вывод:

Action
D574
D582

Ожидаемый вывод:

Action 
 D573
 D574
 D582
 D581

Есть ли простой способ получить мой образецвывод?

...