我是新手所以请原谅这个的简单性。我试图获得一个总数,修剪多余的小数位数而不是附加一些文本..这一切都有效,直到我尝试ROUND它
ROUND(CAST(ServiceFee * COUNT(UserID)AS VARCHAR(20)),0)+ CAST('yen'as VARCHAR(20))
提前致谢
答案 0 :(得分:1)
取决于SQL的方言。
例如,在MySQL中,+
运算符仅用于数学加法。如果要连接值,应使用CONCAT()
(在MySQL中)或||
运算符(其他支持标准SQL的DBMS)。
您还在ROUND()中执行冗余CAST,因为ROUND函数期望其参数为数字。
所以这是MySQL中的修复语句:
CONCAT(ROUND(ServiceFee * COUNT(UserID), 0), ' yen')
或者在标准SQL中:
CAST(ROUND(ServiceFee * COUNT(UserID), 0) AS VARCHAR(20)) || ' yen'
(CAST可能是多余的,但我保留它以防你有目的)
答案 1 :(得分:0)
在投射之前你必须对值进行舍入:
CAST(ROUND(ServiceFee * COUNT(UserID),0) AS VARCHAR(20)) + ' yen'