【发布时间】:2018-04-06 06:05:24
【问题描述】:
我正在使用 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 ',第二个是 '。
我可能必须使用SUBSTRING 和CHARINDEX,但无论如何我无法实现它。
我的尝试
有示例数据和我尝试过的,只是没有成功:
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), '')))
【问题讨论】:
-
@YogeshSharma 想要的结果在
What I need部分。
标签: sql sql-server sql-server-2008 tsql substring