В базе данных 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;

SQLFiddle demo

Другие вопросы по тегам