2017-06-07 37 views

回答

3

SUBSTRINGCHARINDEX是你的朋友在這裏。 試試這個:

DECLARE @str VARCHAR(MAX) = 'XXXXX - XXXX - XXX - XXXX' 

SELECT SUBSTRING(SUBSTRING(@str, CHARINDEX('-', @str) + 1, LEN(@str)), CHARINDEX('-', @str) + 1, LEN(@str)) 

返回XXX - XXXX

0

這是一個基於XML/XQuery的解決方案:

SELECT *, y.ColB.query('root/i[position() gt 2]').value('.', 'NVARCHAR(100)') AS SomethingVeryImportant 
FROM ( 
    SELECT 'XXXXX - XXXX - XXX - XXXX' 
    UNION ALL 
    SELECT 'XXXX - XXX - XXXXXXX' 
) AS x(ColA) 
CROSS APPLY (SELECT CONVERT(XML, N'<root><i>' + REPLACE(x.ColA, N'-', N'-</i><i>') + N'</i></root>')) AS y(ColB) 

Demo

相關問題