在MySQL数据库中我想要其他条件

时间:2014-03-19 12:23:45

标签: mysql mysql-error-1064

我有一个名为XYZ的表,其中一个名为Unit_Value的字段为DECIMAL(3,2),这里有一些示例数据:

Unit_Value
--------- 
1.00
1.25
1.75
1.25
0.50

我的要求是,unit_value >= 0如果unit_value <= 1显示为unit_value,则应显示为1。

我尝试了以下内容:

SELECT unit_value,
       IF(ROUND(unit_value) = 0, 1, unitvalue) 
  FROM xyz u 
 WHERE unit_value IS NOT NULL;

但是我没有得到理想的结果。

2 个答案:

答案 0 :(得分:1)

SELECT unit_value,
       CASE WHEN unit_value >=0 THEN 1 ELSE unit_value END
  FROM xyz u 
 WHERE unit_value IS NOT NULL;

答案 1 :(得分:0)

unitvalueIF(ROUND(unit_value) = 0, 1, unitvalue)的最后一个问题必须是unit_value。您在字段名称中错过了“_”。

还适合您的条件(unit_value >= 0 then is should display as 1 if unit_value <= 1) 我认为它应该使用CEILING而不是ROUND

SELECT unit_value,
       IF(CEILING(unit_value) = 1, 1, unit_value) 
  FROM xyz u 
 WHERE unit_value IS NOT NULL;

SQLFiddle demo