В базе данных MySQL я хочу, если еще условие
У меня есть стол с именем XYZ
с полем под названием Unit_Value
который имеет тип DECIMAL(3,2)
Вот несколько примеров данных:
Unit_Value
---------
1.00
1.25
1.75
1.25
0.50
Мое требование, если unit_value >= 0
тогда должен отображаться как 1, если unit_value <= 1
затем отобразить unit_value
,
Я пробовал следующее:
SELECT unit_value,
IF(ROUND(unit_value) = 0, 1, unitvalue)
FROM xyz u
WHERE unit_value IS NOT NULL;
Однако я не получаю желаемого результата.
2 ответа
SELECT unit_value,
CASE WHEN unit_value >=0 THEN 1 ELSE unit_value END
FROM xyz u
WHERE unit_value IS NOT NULL;
Вопрос в последнем unitvalue
вIF(ROUND(unit_value) = 0, 1, unitvalue)
должно быть unit_value
, Вы пропустили "_" в названии поля.
Также для ваших условий (unit_value >= 0 then is should display as 1 if unit_value <= 1)
Я думаю, что он должен использовать потолок вместо ROUND
:
SELECT unit_value,
IF(CEILING(unit_value) = 1, 1, unit_value)
FROM xyz u
WHERE unit_value IS NOT NULL;