我有一个名为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;
但是我没有得到理想的结果。
答案 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)
unitvalue
中IF(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;