我想要数据类型为 varchar 且第一个字符为 £ 的行的总和,例如:
Total
£23.0
£13.0
£2.40
我正在使用这个查询:
select sum(cast(SUBSTRING(total,2,(LEN(total)))as int)) as Total from tbl_preorder
我想要数据类型为 varchar 且第一个字符为 £ 的行的总和,例如:
Total
£23.0
£13.0
£2.40
我正在使用这个查询:
select sum(cast(SUBSTRING(total,2,(LEN(total)))as int)) as Total from tbl_preorder
由于十进制数字和字段长度,您的查询不起作用。尝试这个:
SELECT Sum(Cast(Replace(total, '£', '') AS DECIMAL(10, 2)))
FROM test
WHERE total LIKE '£%'
SELECT sum(cast(stuff(total, 1,1,'') as decimal(10,2))) as Total
FROM tbl_preorder
你应该考虑到你真的想要这样做。如果有可能,您应该将该列的数据类型更改为十进制,或者可能引入一个计算列(它可以是这个带有字符串的值,或者是一个小数并在 varchar 列上执行子字符串)。
嗨希望这有助于谢谢
从 tbl_preorder 中选择 SUM(CONVERT(DECIMAL(18,2), STUFF(total,1,1,''))) 作为总计
嗨使用下面的查询,除了数据类型 int 到十进制之外,顺序与上面提到的相同。
SELECT sum(cast(SUBSTRING(total, 2, ( LEN(total) ))AS DECIMAL(10, 2))) AS Total
FROM tbl_preorder