如何选择后特定的字符数据

问题描述 投票:3回答:2

我想跳过第一个破折号选择从第二破折号数据。

我用下面从我得到的唯一FLR功能

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

该单元格包含该值

0771-B-3RD-FLR

所需的输出

Ardffler

sql sql-server sql-server-2005 sql-server-2012
2个回答
-1
投票

一种方法就是咀嚼串一个连字符在一个时间:

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) ;

2
投票

如果从第二个连字符开始你要总是(你的描述是有点矛盾),你可以使用STUFF和一对夫妇的嵌套CHARINDEX功能:

SELECT STUFF(V.S,1,CHARINDEX('-',V.S,CHARINDEX('-',V.S)+1),'') AS NS
FROM (VALUES('0771-B-3RD-FLR'))V(S);
© www.soinside.com 2019 - 2024. All rights reserved.