我需要从字符串中提取子字符串的一部分,如下所示。
YY_12.Yellow
ABC_WSA.Thisone_A
SS_4MON.DHHE_A_A
我需要按如下方式提取字符串
Yellow
Thisone
DHHE
你可以使用这样的东西:
declare @tbl table (col nvarchar(100));
insert @tbl values ('YY_12.Yellow'), ('ABC_WSA.Thisone_A'), ('SS_4MON.DHHE_A_A')
select *
, charindex('_', col2, 0)
, left(col2,
case
when charindex('_', col2, 0) - 1 > 0
then charindex('_', col2, 0) - 1
else len(col2)
end) [result]
from (
select col
, substring(col, charindex('.', col, 0) + 1, len(col)) [col2]
from @tbl ) rs
我将留下完整的代码,以便您能够理解我所做的事情。
- 首先识别并删除点“.”之前的所有内容。 (在里面
[col2]
嵌套中的列SELECT
)
- 然后我筑巢
SELECT
所以我可以从第一个结果列更轻松地应用新逻辑SELECT
我只将所有内容保留到下划线“_”
- 最终结果保存在
[result]
column
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)