gpt4 book ai didi

sql-server - SQL Server 基于模式的字符串提取

转载 作者:行者123 更新时间:2023-12-02 22:19:49 25 4
gpt4 key购买 nike

我有以下格式的字符串数据:

MODELNUMBER=Z12345&HELLOWORLD=WY554&GADTYPE=PLA&ID=Z-12345
/DTYPE=PLA&ID=S-10758&UN_JTT_REDIRECT=UN_JTT_IOSV

并且需要根据两个条件提取ID

  1. 在模式之后开始 &ID=
  2. 结束到最后一个字符或

  3. 如果遇到&,就停在那里。

因此,在上面的示例中,我使用以下代码:

SUBSTRING(MyCol,(PATINDEX('%&id=%',[MyCol])+4),(LEN(MyCol) - PATINDEX('%&id%',[MyCol])))

本质上是查看模式 &id=% 并在其后提取字符串直到行尾。有人会建议如何处理逻辑的后半部分..

我目前的结果是

Z-12345
Z-12345&UN_JTT_REDIRECT=UN_JTT_IOSV

我需要的是

Z-12345
Z-12345

最佳答案

试试这个

SUBSTRING(MyCol, (PATINDEX('%[A-Z]-[0-9][0-9][0-9][0-9][0-9]%',[MyCol])),7) 

如果遇到性能问题,请添加下面的 where 子句

-- from Mytable
WHERE [MyCol] like '%[A-Z]-[0-9][0-9][0-9][0-9][0-9]%'

也许不是最优雅的解决方案,但它对我有用。

Correct syntax of PATINDEX

关于sql-server - SQL Server 基于模式的字符串提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28311360/

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