转载自:http://blog.csdn.net/ljsososo/article/details/10378573
在富文本内容中通常会出现回车、换行内容。在sql数据库中这些回车、换行符,输出html后,表现为空格。
这里是在数据导出、导入中发现的,通常把回车、换行符找出来,用<br>替换。
这里使用了,sql 函数。replace(string_expression , string_pattern , string_replacement),第一个参数:要查找的字段。第二个参数:要查找的字符。第三个参数:要替换成的字符。
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
===========================
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的函数.