替換SQL字段中的換行符,回車符

轉載自:http://blog.csdn.net/ljsososo/article/details/10378573

在富文本內容中通常會出現回車、換行內容。在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的函數.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章