使用SQL除掉文本中特殊的ASCLL字符比如ENTER,TAB,空格键

在将数据库中的数据导出到Excel中时,如果文本中含有tab键,enter键,空格键,但是放在datatable中或者在datagridview中显示时也无法看出异常。

但是将数据导出到Excel或者CSV文件中时,就会出现格式不一致了。怎么用SQL将这些特殊的ASCII字符清除掉呢?

下面我提供下我的解决方案:

示例在SQL Server 2008/2012中测试通过了。

………………替换了文本中含有tab键,Enter键,空格键的ascii码

SELECT F1,F2,REPLACE(REPLACE(REPLACE(F3,CHAR(9),''),CHAR(10),''),CHAR(13),'') FROM T1

………………首先使用了:replace ('field_name','from_str','to_str')这个系统函数,

说明:

cdb_name    该字符或字符串所在表的名字 
field_name   该字符或字符串所在字段的字段名 
from_str      需要替换的字符串 
to_str         替换成的字符串

 

UPDATE 操作:

--替换回车
UPDATE table_name
SET field_name=REPLACE(field_name,CHR(13),'')
WHERE INSTR(field_name,CHAR(13))>0 


--替换换行
UPDATE table_name
SET field_name=REPLACE(field_name,CHR(10),'')
WHERE INSTR(field_name,CHAR(10))>0

--替换空白

UPDATE table_name
SET field_name=REPLACE(field_name,CHR(10),'')
WHERE INSTR(field_name,CHAR(9))>

table_name:表名
field_name:列名

posted @ 2015-08-13 13:34  HuoLarry  阅读(144)  评论(0)    收藏  举报