.xls数据导入sqlserver2005,字段前加了一个不是空格的空格

yuna@liu 2014-11-12 04:17:27
使用sqlserver 的导入导出工具(C:\Program Files\Microsoft SQL Server\90\DTS\Binn\DTSWizard.exe)
实现:
将一个excel数据导入到sqlserver2005数据库中
sheet中其中一列为身份证号码
问题:
导入成功后,查询数据,发现“身份证号码”列首部多了个空格
使用update [A表] set [身份证件号]=replace([身份证件号],' ','');(全角/半角空格都试过了)
或者
update [A表] set [身份证件号]=LTRIM(RTRIM([身份证件号]))

都无法去掉这个“空格”
所以这个“空格”不是一个真正的空格字符,
但:REPLACE( [身份证件号], CHAR(13) , '')
或者:REPLACE( [身份证件号], CHAR(13) , '')
或者:REPLACE( [身份证件号], CHAR(13) + CHAR(10) , '')
也没有作用,
所以该“空格”也不是回车符,换行符或者是回车换行符

最后:只能使用substring( [身份证件号],2,18)来解决
但是这个“空格”到底是个什么字符呢,怎么能够查出来,它是怎么产生的(原excel中是没有这个空格的)。
...全文
222 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
还在加载中灬 2014-11-13
  • 打赏
  • 举报
回复
引用 6 楼 liuxiulian 的回复:
谢谢 ky_min sqlserver 默认的都是UNICODE 吗
NCHAR类的才是,默认应该是ASCII
shinger126 2014-11-13
  • 打赏
  • 举报
回复
直接replace([身份证件号],' ','')
yuna@liu 2014-11-13
  • 打赏
  • 举报
回复
谢谢 ky_min sqlserver 默认的都是UNICODE 吗
还在加载中灬 2014-11-13
  • 打赏
  • 举报
回复
REPLACE( [身份证件号], CHAR(9) , '') 
这样
yuna@liu 2014-11-13
  • 打赏
  • 举报
回复
UNICODE为9,是什么字符啊。如果要把这个乱码去掉,该怎么办呢
还在加载中灬 2014-11-13
  • 打赏
  • 举报
回复
这个是Tab符~~
yuna@liu 2014-11-13
  • 打赏
  • 举报
回复
谢谢 ky_min PRINT UNICODE(SUBSTRING([身份证件号],1,1)) 结果是:9
还在加载中灬 2014-11-12
  • 打赏
  • 举报
回复
显示为空白的,又不一定要是空格,乃至空白符,我猜也有可能是乱码,你可以看下它的UNICODE编码是多少
PRINT UNICODE(SUBSTRING([身份证件号],1,1))

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧