我想在一列「E.Notes」Retun X形
例串之後的字符串爲以下4個字符返回「代碼: ABCD」
目標輸出 'ABCD'
我已經試過無濟於事;-(
CASE WHEN CHARINDEX('<strong>Code:</strong> ', E.Notes) > 0 THEN
LEFT(E.Notes, CHARINDEX('<strong>Code:</strong> ', E.Notes) 4)
ELSE '' END
我想在一列「E.Notes」Retun X形
例串之後的字符串爲以下4個字符返回「代碼: ABCD」
目標輸出 'ABCD'
我已經試過無濟於事;-(
CASE WHEN CHARINDEX('<strong>Code:</strong> ', E.Notes) > 0 THEN
LEFT(E.Notes, CHARINDEX('<strong>Code:</strong> ', E.Notes) 4)
ELSE '' END
使用SUBSTRING()
或RIGHT()
應該沒問題。
CASE WHEN CHARINDEX('<strong>Code:</strong> ', E.Notes) > 0 THEN
SUBSTRING(E.Notes, CHARINDEX('<strong>Code:</strong> ', E.Notes) + LEN('<strong>Code:</strong> '), 255)
ELSE '' END
CASE WHEN CHARINDEX('<strong>Code:</strong> ', E.Notes) > 0 THEN
RIGHT(E.Notes,LEN(E.Notes) + 1 - LEN('<strong>Code:</strong>') - CHARINDEX('<strong>Code:</strong> ', E.Notes))
ELSE '' END
,你可以使用RTRIM()
或LTRIM()
來獲得空間的RID。
試試這個
DECLARE @Notes VARCHAR(200) = '<strong>Code:</strong> ABCDkkkk'
SELECT CASE
WHEN CHARINDEX('Code:', @Notes) > 0
THEN RIGHT(@Notes, LEN(@Notes) - CHARINDEX('Code:', @Notes) - 14)
ELSE ''
END
EDITED
通過OP的需求從字符串只得到第一個4個字符。
SELECT CASE
WHEN CHARINDEX('Code:', @Notes) > 0
THEN LEFT(RIGHT(@Notes, LEN(@Notes) - CHARINDEX('Code:', @Notes) - 14), 4)
ELSE ''
END
謝謝,但不幸的是它不是下一個4,而是字符串後面的所有字符。 – Mike 2014-10-03 15:09:05
@Mike:但你沒有提到它。無論如何,我已經修改我的答案。請檢查一下。 – 2014-10-04 12:07:01
是'Code:'是固定在你的字符串? – 2014-10-03 10:42:05