gpt4 book ai didi

sql-server - 获取sql server中重复多次的2个字符之间的字符串

转载 作者:行者123 更新时间:2023-12-03 12:29:58 24 4
gpt4 key购买 nike

我需要提取连续重复多次的 2 个特定字符之间的多个字符串。例如;这些是我表格中的两行:

id myString
1 'aaa(bb)ccc(ddd)'
2 'eeee(ff)gggg(hhh)iii'

我的预期结果是:

id myString
1 bb
1 ddd
2 ff
2 hhh

我该怎么做?

提前致谢。

最佳答案

如果字符串始终遵循 '..(..)' 的重复模式,解决此问题的一种方法是使用 Jeff Moden 的 CSV Splitter 函数,将第二个分隔符替换为第一个分隔符,并使用 modulo (%) 仅获取第二组:

select 
Id
, myString = x.item
from t
cross apply (
select Item = ltrim(rtrim(i.Item))
from [dbo].[delimitedsplit8K](replace(t.mystring,')','('),'(') as i
where ItemNumber%2=0
) x

测试设置:http://rextester.com/DAI48471

添加了 3,'jjj(kkk)ll(mmm)n(ooooo)pp(qq)rr'

的示例输入

返回:

+----+----------+
| Id | myString |
+----+----------+
| 1 | bb |
| 1 | ddd |
| 2 | ff |
| 2 | hhh |
| 3 | kkk |
| 3 | mmm |
| 3 | ooooo |
| 3 | qq |
+----+----------+

分割字符串引用:

关于sql-server - 获取sql server中重复多次的2个字符之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42509024/

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