excel数据导入SQL Server中“空格”问题

Excel版本是2013,,SQL Server版本为2008 R2,应该和Excel和SQL Server版本没啥关系!

把excel导入sql server(使用之前的文中写的导入方法)后发现有不少空格难以消除,比如一个正常的8位号码,用len(电话号码)竟然是9,然后复制出来放到单引号中'12345678 ',最后一位是空格;然后使用replace(电话号码,' ','')或者rtrim(电话号码)都无法去除。

先说说这个rtrim(电话号码)吧,ltrim和rtrim很熟(感觉),虽然不是经常用,但需要的时候总是顺手拿来(必须的吧)!为毛rtrim(电话号码)不管用,很郁闷。就搜啊(也只能搜了),我发现语法中,里面的数据类型需为varchar,可我的电话号码的数据类型是nvarchar,应该没问题啊,我想显式转换看看吧,一显式转换吓了一跳,有的电话号码前面和后面都是'?'。然后使用replace(电话号码,'?','')替换掉就ok了。

关于rtrim的用法,参照:http://msdn.microsoft.com/zh-cn/library/ms178660.aspx

这里截个图

image

仔细看语法还是有帮助滴,至少这个显式转换,不看我是不会想到的;当然平时正常使用不出意外的话,我都是按照习惯去写sql,其实我都不知道character_expression需要是varchar类型,我只知道是字符串类型~~

这个解决了一部分“空格”的问题,下面就是另一部分“空格”了。

当然也搜了,各种各样的,有点感触的就是换行char(10),有可能是excel中当事人做的时候加了换行,抱着试试态度一试果然有效。

我还特定到excel里严重了那几个号码。

update table set 电话号码=REPLACE(电话号码,CHAR(10),'') where len(电话号码)=9附上另两个格式对应的balabala

制表符 CHAR(9)
回车 CHAR(13)

“空格”的问题,终于有了解决方法啦~~~

posted @ 2015-01-13 15:42  cnmarkao  阅读(3319)  评论(0编辑  收藏  举报