如何僅在隱藏CRLF存在的字符串末尾執行替換查詢?事情是這樣的,但只在字符串的結束的字符串僅在文本字符串END上刪除CR LF的T-SQL語法
declare @NewLine char(2)
set @NewLine=char(13)+char(10)
update tableName
set columnName =Replace(columnName , @NewLine,'')
where (RIGHT(columnName ,2)[email protected])
一些字符串有多個段落,因此CR LF類都OK,只是沒有對文本字符串的結尾內沒有任何地方。
上述代碼仍然會在整個字符串中替換CR LF。
SQL Server 2008 R2的快速
UPDATE: 我最近的參考答案的測試顯示,在SSMS的CRLFs似乎仍然在中期字符串,但複製內容到Excel和運行後ACSII比較每個字符上沒有CRLF,它們似乎已經轉換爲空格。 我一直在使用此代碼進行測試,並將結果導出到文本文件和CSV中。
create table #t(t varchar(400))
insert into #t values('abc'+char(13)+char(10)+'xyz'+char(13)+char(10))
insert into #t values('rrrrr'+char(13)+char(10)+'sssss'+char(13)+char(10))
insert into #t values('Sentence1
Sentence2!
Sentence3
')
insert into #t values('rrrrr'+char(13)+char(10))
insert into #t values('Sentence111
Sentence222
')
insert into #t values('abc1234'+char(13)+char(10)+char(13)+char(10)+'xyz987'+char(13)+char(10)+char(13)+char(10)+'lmnop345'+char(13)+char(10))
declare @NewLine char(2)
set @NewLine=char(13)+char(10)
select len(t),t from #t
update #t
set t = STUFF(t, LEN(t)-1, 2,'')
where (RIGHT(t ,2)[email protected])
select len(t),t from #t
drop table #t
我可能做錯事僅僅指剛不知道還有什麼嘗試在這一點上。
我不認爲SQL是最好的,但如果你堅持,你可能會嘗試SUBSTRING結合LEN。 –
我一直在探索這個選擇。我還沒有得到任何工作。 – htm11h