在SQL Server 2014中,如何在第一个连字符后面会有许多组合的字段中提取第一个连字符右侧的所有字符。
示例1:
爱琴海-1GB-7天-COMP
期望的结果:
1GB-7天-COMP
示例2:
爱琴海SchooliesSpecial-7GB
期望的结果:
SchooliesSpecial-7GB
示例3:
AkCityOaks-1天-3GB
期望的结果:
1天-3GB
答案 0 :(得分:1)
您可以使用CharIndex
和'SubString'的组合来获得所需的结果。
执行此操作时,您将从第一个字符开始获取第一个连字符的位置。
CharIndex ('Aegean-1GB-7days-COMP', '-', 1)
然后切割字符串很容易
Select
SubString (
'Aegean-1GB-7days-COMP',
CharIndex ('-', 'Aegean-1GB-7days-COMP', 1) + 1,
Len('Aegean-1GB-7days-COMP') - CharIndex ('-', 'Aegean-1GB-7days-COMP', 1)
)
由于您的数据最有可能出现在列中,我会将其更改为
Select
SubString (
YourColumnName,
CharIndex ('-', YourColumnName, 1) + 1,
Len(YourColumnName) - CharIndex ('-', YourColumnName, 1)
)
From YourTableName
如果您想匹配--
而不是-
,请查看PatIndex`
答案 1 :(得分:1)
使用CHARINDEX和SUBSTRING可以工作:
DECLARE @HTXT as nvarchar(max)
SET @HTXT='lkjhgf-wtrfghvbn-jk87fry--jk'
SELECT SUBSTRING(@HTXT, CHARINDEX('-', @HTXT) + 1, LEN(@HTXT))
结果: wtrfghvbn-jk87fry - JK
答案 2 :(得分:0)