gpt4 book ai didi

sql - 在 SQL 中选择直到第二个下划线的子字符串

转载 作者:行者123 更新时间:2023-12-04 13:38:15 30 4
gpt4 key购买 nike

我有这样的字符串:

FOO_BAR_3423423_dsadsa.doc
BAZ_BAZzz_dsadsa.nox

_ 的数字可以不同,但​​我需要一直选择直到第二个 _:

FOO_BAR
BAZzz_BAZ

我可以选择直到第一个_:

SUBSTRING ([COLUMN], 0, CHARINDEX('/', [COLUMN], 0))

但是如何将它扩展到第二个下划线呢?

最佳答案

您可以使用交叉应用,以下查询将为您提供包含数据的索引。

declare @T table
(
Name_Level varchar(25)
)

insert into @T values
('FOO_BAR_3423423_dsadsa'),
('BAZ_BAZzz_dsadsa'),

select SUBSTRING(Name_Level,0,p2.pos) As Data,p1.Pos as firstOccurance,p2.pos As secondOccurance
from @T
cross apply (select (charindex('_', Name_Level))) as P1(Pos)
cross apply (select (charindex('_', Name_Level, P1.Pos+1))) as P2(Pos)

结果:

-------------------------
FOO_BAR 4 8
BAZ_BAZzz 4 10

如果你想获得下一个索引,只需再添加一个 CrossApply,它将为你提供 _ 的下一个索引。

关于sql - 在 SQL 中选择直到第二个下划线的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28811590/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com