如何select特定字符后的数据
How to select data after specific character
我想跳过第一个破折号,从第二个破折号中选择数据。
我使用了以下函数,我从中获得了唯一的 FLR
replace(right([Bin Code], charindex('-', reverse([Bin Code]))),'-','')
该单元格包含此值
0771-B-3RD-FLR
期望的输出
3RD-FLR
如果你想要从第二个连字符开始总是(你的描述有点矛盾),你可以使用STUFF
和几个嵌套的CHARINDEX
函数:
SELECT STUFF(V.S,1,CHARINDEX('-',V.S,CHARINDEX('-',V.S)+1),'') AS NS
FROM (VALUES('0771-B-3RD-FLR'))V(S);
一种方法是一次只咀嚼字符串一个连字符:
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) ;
我想跳过第一个破折号,从第二个破折号中选择数据。
我使用了以下函数,我从中获得了唯一的 FLR
replace(right([Bin Code], charindex('-', reverse([Bin Code]))),'-','')
该单元格包含此值
0771-B-3RD-FLR
期望的输出
3RD-FLR
如果你想要从第二个连字符开始总是(你的描述有点矛盾),你可以使用STUFF
和几个嵌套的CHARINDEX
函数:
SELECT STUFF(V.S,1,CHARINDEX('-',V.S,CHARINDEX('-',V.S)+1),'') AS NS
FROM (VALUES('0771-B-3RD-FLR'))V(S);
一种方法是一次只咀嚼字符串一个连字符:
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) ;