我有一個列的表Note / Reason- 像這樣:
Note / Reason
test
test2
test REASON:ANOTHER PROVIDER
this is a test REASON:NO FITTER
我想把下面的文字分成注釋和下面的理由,以理由開頭,其他文??字將被注釋
Note Reason
---------------------------------------------------
test
test2'
test REASON:ANOTHER PROVIDER
this is a test REASON:NO FITTER
uj5u.com熱心網友回復:
正如我在評論中提到的,使用 Sean 的示例資料,CHARINDEX使用LEFT和STUFF:
SELECT LEFT(NoteReason,CHARINDEX('REASON:',NoteReason 'REASON:')-1) AS Note,
STUFF(NoteReason,1,CHARINDEX('REASON:',NoteReason)-1,'') AS Reason
FROM @NoteReason;
考慮到您有額外的空白,您可能還希望將運算式包裝在TRIM.
uj5u.com熱心網友回復:
如果您以可消耗的格式提供樣本資料會更好。這樣,其他人使用起來很容易,而且也更精確,因此其他人不會猜測或假設您的表和樣本資料。鑒于您問題中的稀疏資訊,這樣的事情應該有點接近。
declare @NoteReason table (NoteReason varchar(100))
insert @NoteReason values
('test')
, ('test2')
, ('test REASON:ANOTHER PROVIDER')
, ('this is a test REASON:NO FITTER')
select Note = case when charindex('REASON', n.NoteReason) = 0 then n.NoteReason
else left(n.NoteReason, charindex('REASON', n.NoteReason) - 1)
end
, Reason = case when charindex('REASON', n.NoteReason) > 0 then substring(n.NoteReason, charindex('REASON', n.NoteReason), len(n.NoteReason)) else '' end
from @NoteReason n
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/493657.html
下一篇:計算兩個日期之間的作業時間
