【发布时间】:2017-08-17 05:44:45
【问题描述】:
我正在使用 Sybase 数据库。我希望将第三个“WHEN”语句作为整数作为原始值的输出(Round((sum(value)*100),1))。我怎样才能做到这一点。提前致谢。
CASE WHEN Round((sum(value)*100),1)<0 THEN 'Neg'
WHEN Round((sum(value)*100),1)=0 THEN 'N/A'
WHEN Round((sum(value)*100),1)>0 THEN Round((sum(value)*100),1)
END AS RCB
注意:这里第 3 行表示错误,因为它是一个整数。我得到的错误是:
错误:- Data exception - data type conversion is not possible. In CASE expression, incompatible data type at result expression 3, ROUND(COALESCE ((SUM(MSTR.SUM.value)*100),0),1)
其次,我尝试了下面的 Else 语句。
CASE WHEN Round((sum(value)*100),1)<0 THEN 'Neg'
WHEN Round((sum(value)*100),1)=0 THEN 'N/A'
--WHEN Round((sum(value)*100),1)>0 THEN Round((sum(value)*100),1)
ELSE Round((sum(value)*100),1)
END AS RoRC,
但仍然得到同样的错误。请帮帮我。谢谢。
【问题讨论】:
-
添加一些示例数据和所需的输出
-
不能混合数据类型;您需要每个
WHEN的结果是所有字符串或所有数字。 -
@Mattew Strawbridge,这就是为什么我要问是否有办法做到这一点。
标签: sql-server database sybase