替换SQL字段中的换行符,回车符(ASCii码),查询SQL字符串中的换行符

有时候我们需要替换一些不需要的SQL字段, 下面就为您介绍替换SQL字段的几种情况,如果您对替换SQL字段方面感兴趣的话,不妨一看。

替换SQL字段中的换行符,回车符:

1> 回车符

SELECT *, REPLACE(detail, CHAR(13) , '<br>') AS 显示替换后的内容 FROM loginfo

2>换行符

SELECT *, REPLACE(detail, CHAR(10), '<br>') AS 显示替换后的内容 FROM loginfo

3>回车换行符

SELECT *, REPLACE(detail, CHAR(13) + CHAR(10), '<br>') AS 显示替换后的内容 FROM loginfo

4>将回车换行符替换成<BR><BR>

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

注 在 dos \win 系列会出现 回车+换行符 CHAR(13)+CHAR(10)

在 unix \ linux 是换行符

转换只要把回车符char(13) 去掉就行了

以下sql语句

UPDATE loginfo SET detail = REPLACE(detail, CHAR(13) , '')



怎样用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的函数.


你可能感兴趣的:(sql,换行符,ASCII码,sql换行符)