Как выбрать данные после конкретного символа - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу пропустить первый тире, чтобы выбрать данные из второго тире.

Я использовал нижеприведенную функцию, из которой я получаю единственный FLR

replace(right([Bin Code], charindex('-', reverse([Bin Code]))),'-','')

Ячейка содержит этозначение

0771-B-3RD-FLR

Желаемый выход

3RD-FLR

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Один из способов - просто перебирать строку по одному дефису за раз:

select t.*, v2.bin_code
from t cross apply
     (values (stuff(t.bin_code, 1, charindex('-', t.bin_code), '')
     ) v(bin_code)(bin_code) cross apply
     (values (stuff(v1.bin_code, 1, charindex('-', v1.bin_code), '')
     ) v2(bin_code)(bin_code) ;
0 голосов
/ 08 февраля 2019

Если это всегда со второго нужного вам дефиса (ваше описание немного противоречиво), вы можете использовать STUFF и несколько вложенных CHARINDEX функций:

SELECT STUFF(V.S,1,CHARINDEX('-',V.S,CHARINDEX('-',V.S)+1),'') AS NS
FROM (VALUES('0771-B-3RD-FLR'))V(S);
...