注册 登录
编程论坛 SQL Server论坛

【求助】SQL sereve2008里的数据如何求和

sherlock2017 发布于 2017-03-20 14:34, 2207 次点击
如图所示,将CSV文件导入SQL数据库后,数据前方有'号。。导致无法从varchar转换成int模式去求和。。困扰许久,请各位大大解答一下,万分感谢
只有本站会员才能查看附件,请 登录

8 回复
#2
sherlock20172017-03-21 08:49
求助啊
#3
sherlock20172017-03-21 10:02
大神们帮帮忙
#4
sherlock20172017-03-21 13:46
没人吗?
#5
mywisdom882017-03-22 09:26
有2种方法:
1、就是你在EXCL中先处理后在导入
2、就是你按你现在的导入,在SQL表中处理
但你这样导入到SQL的,不能用 numeric 等数字字段,只能用字符串字段,然后用下面的语句,先处理1下
update SQL表 set SQL字段名 = replace(QL字段名,'''','')  --在SQL中的 ' 要用2个 '来代替 ,这句的意思就是把 1个 ' 替换成空格
#6
sherlock20172017-03-22 10:33
回复 5楼 mywisdom88
多谢大神,转换好的数据的确把'去掉了。。。但是之后想用CAST将VARCHAR转换成INT的时候却失败了。。。该怎么办呢
#7
mywisdom882017-03-22 16:16
以下是引用sherlock2017在2017-3-22 10:33:21的发言:

多谢大神,转换好的数据的确把'去掉了。。。但是之后想用CAST将VARCHAR转换成INT的时候却失败了。。。该怎么办呢

你自己测试下面几个,就知道了。
declare @a1 varchar(11),@n1 varchar(11)
declare @n2 int
declare @n3 numeric(9,2)

set @a1='''7654321.12'
set @n1=replace(@a1,'''','')
set @n2=cast(@n1 as numeric(9,0))
set @n3=cast(@n1 as numeric(9,2))

print @a1
print @n1
print @n2
print @n3

'7654321.12
7654321.12
7654321
7654321.12




[此贴子已经被作者于2017-3-22 16:18编辑过]

#8
sherlock20172017-03-23 11:13
回复 7楼 mywisdom88
谢谢了
#9
ruicaikeji2017-04-08 17:02
select sum(列表名) sum from 表名;
1