环境:
DB:SQLServer2012
OS:Windows Server 2012
问题:
SQLServer 数据中包含 Tab 制表符,将数据导出到 execl 时,包含 Tab 制表符的字段自动换列了,导致数据不准确;
问题重现:
create database chenjchdb ;
use chenjchdb
create table test01 ( id int , rname varchar (1000 ), ctime date );
insert into test01 values (1 , 'a' , getdate ());
–b 和 b 之间是 Tab 制表符
insert into test01 values (2 , 'b b' , getdate ());
—c 后是 Tab 制表符
insert into test01 values (3 , 'c ' , getdate ());
select * from test01 ;
— 连同标题一起复制 到 execl 表格
由于有 Tab 制表符,导致 Execl 自动换列, execl 表格里的数据并不是我们预期的;
— 查看含有 Tab 制表符的行
— 查看含有 Tab 制表符的行 (Tab 制表符 对应 char(9))
Select * from test01 where rname like '%' + char (9 ) + '%' ;
解决方案:
查询数据时将 Tab 制表符 替换 成 空格或者其他符合;
— 将 Tab 制表符替换成空格
select id , REPLACE ( rname , CHAR (9 ), ' ' ) rname , ctime from test01 ;
— 连同标题一起复制 到 execl 表格
欢迎关注我的微信公众号"IT小Chen"