嗨大家好我想要数据类型为varchar&的行的总和第一个角色是£喜欢:
Total
£23.0
£13.0
£2.40
我正在使用以下查询:
select sum(cast(SUBSTRING(total,2,(LEN(total)))as int)) as Total from tbl_preorder
任何建议都非常感谢。
答案 0 :(得分:3)
由于十进制数字和字段长度,您的查询无效。试试这个:
SELECT Sum(Cast(Replace(total, '£', '') AS DECIMAL(10, 2)))
FROM test
WHERE total LIKE '£%'
上验证
答案 1 :(得分:3)
答案 2 :(得分:2)
SELECT sum(cast(stuff(total, 1,1,'') as decimal(10,2))) as Total
FROM tbl_preorder
答案 3 :(得分:1)
你应该考虑到你真的想要这样做。如果你有可能,你应该将该列的数据类型更改为十进制,或者可能引入一个计算列(该值可以是带字符串的值,也可以是小数,并在varchar列上执行子字符串)。
答案 4 :(得分:1)
希望这有帮助谢谢
SELECT SUM(CONVERT(DECIMAL(18,2),STUFF(total,1,1,'')))来自tbl_preorder的总计
答案 5 :(得分:0)
嗨使用以下查询,与上面提到的序列相同,但数据类型为int到十进制。
SELECT sum(cast(SUBSTRING(total, 2, ( LEN(total) ))AS DECIMAL(10, 2))) AS Total
FROM tbl_preorder