【发布时间】:2016-02-26 16:29:04
【问题描述】:
我有一列包含一个组的描述,每一行看起来就像下面两个选项中的一个,用不同数量的单词和/或数字代替 blah:
bla1h bla2h blah blah Group 18956
blah bl4ah blah Group 189 bla5h
我需要提取词组后面的数字。
我想出了这个代码:
SUBSTRING(R.GroupDescription,CHARINDEX('Group ',R.GroupDescription),20)
这将修剪它以下之一:
Group 18956
Group 189 blah
在此之后,我需要进一步修剪它,以便我能够提出以下代码,这要感谢This post:
LEFT(SUBSTRING(SUBSTRING(R.GroupDescription,CHARINDEX('Group ',R.GroupDescription),20),CHARINDEX(' ',SUBSTRING(R.GroupDescription,CHARINDEX('Group ',R.GroupDescription),20)) +1,LEN(SUBSTRING(R.GroupDescription,CHARINDEX('Group ',R.GroupDescription),20))),CHARINDEX(' ',SUBSTRING(SUBSTRING(R.GroupDescription,CHARINDEX('Group ',R.GroupDescription),20), CHARINDEX(' ', SUBSTRING(R.GroupDescription,CHARINDEX('Group ',R.GroupDescription),20)) +2, LEN(SUBSTRING(R.GroupDescription,CHARINDEX('Group ',R.GroupDescription),20)))))
这段代码既麻烦又只适用于上面第一个例子中的第二个例子,在我想要的数字集之后什么都没有它什么都不返回。
另外真正有趣的部分是返回的结果将需要连接到另一个表。
我正在使用带有 SQL Server 2012 后端的 SSMS 2012。
【问题讨论】: