gpt4 book ai didi

sql - 获取 2 个不同字符串之间的字符串的一部分

转载 作者:行者123 更新时间:2023-12-02 02:59:44 26 4
gpt4 key购买 nike

我正在使用 SQL-Server 2008 R2

首先,我想告诉你,我知道像这样存储字符串是非常糟糕的做法,但作为 SQL 开发人员,我没有能力更改它,第三方生成的软件像这样输出并插入到数据库中。


解释

示例值如下所示:

Name: 'Document No. 996'
Unique No: 'A 54 x. 488sCHU'
No 2: 'RF123456789'
String 'This is dynamic text' value 'test' wrong data
Values 'ETC1 ETC2'.

注意:这是 1 个值(1 列,1 行)

如上所示,结构如下: Name 后添加 : 然后用单引号引起来,然后是一些文档号,在它之后换行等等.


我需要什么(期望的结果)

我需要从该字符串中提取这部分:String 'This is dynamic text'

这部分始终以单词 String 开头,之后是 1 个空格,单引号中是一些文本。

所以看起来我在 2 个字符之间查找,第一个是 String ',第二个是 '

我可能必须使用 SUBSTRINGCHARINDEX,但无论如何我无法实现它。


我尝试过的

有示例数据和我尝试过的方法,但没有成功:

DECLARE @c varchar(100)
SET @c = 'Name: ''Document No. 996''
Unique No: ''A 54 x. 488sCHU''
No 2: ''RF123456789''
String ''This is dynamic text'' value ''test'' wrong data
Values ''ETC1 ETC2''.'


SELECT SUBSTRING(STUFF(@c, 1, CHARINDEX('String ''',@c), ''), 0, CHARINDEX('''', STUFF(@c, 1, CHARINDEX('String ''',@c), '')))

最佳答案

你可以使用它

DECLARE @c varchar(1000)
SET @c = 'Name: ''Document No. 996''
Unique No: ''A 54 x. 488sCHU''
No 2: ''RF123456789''
String ''This is dynamic text'' value ''test'' wrong data
Values ''ETC1 ETC2''.'


SELECT SUBSTRING( @c, CHARINDEX('String ''',@c) , CHARINDEX('''', @c, CHARINDEX('String ''',@c)+8 ) - CHARINDEX('String ''',@c)+1)

结果:

String 'This is dynamic text'

关于sql - 获取 2 个不同字符串之间的字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46927513/

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