SQL: 如何在 sql 的 CASE 函数中存储整数值?

SQL: How to Store Integer value in CASE function in sql?

我在 Sybase 中工作 database.I 希望第 3 个 'WHEN' 语句作为 Integer 作为 Original value(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 行指示错误,因为它是 integer.The 错误,我得到的是: 错误:- 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, 

但仍然出现同样的错误。请帮帮我。谢谢。

您需要 cast 数字作为 varchar 以匹配 CASE 语句的其他可能结果的类型

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  CAST(Round((sum(value)*100),1) as varchar)