在此行添加文字

时间:2009-11-19 14:27:25

标签: sql rounding

我是新手所以请原谅这个的简单性。我试图获得一个总数,修剪多余的小数位数而不是附加一些文本..这一切都有效,直到我尝试ROUND它

ROUND(CAST(ServiceFee * COUNT(UserID)AS VARCHAR(20)),0)+ CAST('yen'as VARCHAR(20))

提前致谢

2 个答案:

答案 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'