1. 程式人生 > >替換SQL欄位中的換行符,回車符

替換SQL欄位中的換行符,回車符

在富文字內容中通常會出現回車、換行內容。在sql資料庫中這些回車、換行符,輸出html後,表現為空格。

這裡是在資料匯出、匯入中發現的,通常把回車、換行符找出來,用<br>替換。 

這裡使用了,sql 函式。replace(string_expression , string_pattern , string_replacement),第一個引數:要查詢的欄位。第二個引數:要查詢的字元。第三個引數:要替換成的字元。

char(9) 水平製表符
char(10)換行鍵
char(13)回車鍵

1> 回車符  char(13)

SELECT *, REPLACE(detail, CHAR(13) , '<br>') AS 顯示替換後的內容 FROM Test

2>換行符

SELECT *, REPLACE(detail, CHAR(10), '<br>') AS 顯示替換後的內容 FROM Test

3>回車換行符

SELECT *, REPLACE(detail, CHAR(13) + CHAR(10), '<br>') AS 顯示替換後的內容 FROM Test

4>將回車換行符替換成<BR><BR>

UPDATE TestSET detail = REPLACE(detail, CHAR(13) + CHAR(10), '<br><br>') 

update t_news set content=REPLACE(content, CHAR(13) + CHAR(10), '<br><br>') where news_type=3

在內容前面加兩個空格,全形的update t_news set content='  '+content where news_type=3

===========================

怎樣用sql語句判斷一個欄位中是否含有換行符?

select * from 表名 where instr(欄位名,chr(13))>0
基中chr(13)表示換行符。
在sql server 2000中不支援instr 函式將instr改為charindex就行了.
charindex函式介紹
一、語法
CHARINDEX ( char1 ,string1 [ , start_location ] ) 
如果 char1 或 string1 之一是 Unicode 
資料型別
(nvarchar 或 nchar)而另一個不是,則將另一個轉換為 Unicode 資料型別。CHARINDEX 不能與 text、ntext 和 image 資料型別一起使用。 如果 char1 或 string1 之一為 NULL,並且資料庫相容級別為 70 或更高,則 CHARINDEX 將返回 NULL。如果資料庫相容級別為 65 或更低,則 CHARINDEX 將僅在 char1 和 string1 都為 NULL 時才返回 NULL 值。 如果在 char1 內找不到 string1,則 CHARINDEX 返回 0。
char1 一個表示式,其中包含要查詢的字元的序列。 string1 一個表示式,通常是一個為指定序列搜尋的列。string1 屬於字串資料類別。 start_location 開始在 string1 中搜索 char1 時的字元位置。 如果 start_location 未被指定、是一個負數或零,則將從 string1 的開頭開始搜尋。start_location 可以是 bigint 型別。 string1 中包含 char1 時返回字元位置 string1 中不包含 char1 時返回0 二、舉例 USE AdventureWorks SELECT CHARINDEX('bicycle', DocumentSummary) FROM Production.Document WHERE DocumentID = 3; 返回結果為48。 SELECT CHARINDEX('bicycle1', DocumentSummary, 5) FROM Production.Document WHERE DocumentID = 3; 返回結果為0。 查詢DocumentSummary欄位中包含"bicycle"的所有行。 一般大家都會寫成這樣: select * from Production.Document where DocumentSummary like'%bicycle%' 瞭解這個函式以後,大家可以這樣寫: select * from Production.Document where charindex('bicycle',DocumentSummary)>0 這種方法比like'%%'的形式速度上要快很多. 資料庫優化的時候可以考慮使用sql 2005的函式.