通过SQLServer Management Studio进行Excel导入,导入后在数据库中默认为float,无法进行匹配工作(匹配的原表为字符型);
我通过修改导入数据库的临时表的列类型,但没有效果。
截图如下:
1、这是Excel导入系统内临时表的列结构:

2、这是临时表的内容:

当我进行匹配时:
select * from _test2
left join 物料 wl on wl.材料编码=_test2.物资编号
提示如下:
请教如何设置,可以让Excel导入进系统的列,默认为字符型?
------解决方案--------------------
只能直接在Excel,把整列的单元格格式设置为文本,强制指定该列为字符型。
这是因为如果单元格格式是常规的话,Excel会根据列的内容,自动判断列的数据类型,在这里Excel把该列自动判断为数字,所以导入有问题。
------解决方案--------------------
不要使用float类型,他会使数据失真。。例如,你输入的是1可能系统保存为1.0000000000000000000000000000000001
这就是你无法匹配的原因,如何是唯一,通过此键连接其他表,设置为主键,类型为int
------解决方案--------------------
在excel中设置列的数据类型为文本,如果还是不行的话,在前8行的该列的数据中前面加 (')分号强制类型为文本。
------解决方案--------------------
在SQL中强制类型转换下
cast(column_name as varchar(20))
cast(column_name as float)
之类的。。