Реализовать конструкцию IF ELSE mysql

322
01 мая 2017, 01:26
SELECT id_hours, date, hours, id_voditeli, id_tehnika, id_service,
(hours*200) AS earned
FROM worked_hours
WHERE id_voditeli=16

Как сделать так чтобы если id_service=1 то значение было (hours*200), а если id_service=2 то значение (hours*250)?

Answer 1

MySQL поддерживает конструкцию CASE. Что важно - это конструкция чистого стандартного SQL и может применяться без создания хранимых процедур. Кстати не только в MySQL, но практически в любой БД.

CASE id_service
  WHEN 1 THEN hours*200
  ELSE hours*250
END AS earned

Я накидал Вам аналог IF ELSE, который Вы просили. Его можно вставлять прямо в запрос. Но обратите внимание, что вторая ветка отработает на ЛЮБОЕ значение кроме 1, а не только на 2. Если в столбце id_service возможно появление какого-то другого значения, то значение 2 надо явно обработать с помощью WHEN, а в ветке ELSE обрабатывать уже все другие значения. P.S. Ну и в комментариях к вопросу был очень остроумный вариант с формулой)

READ ALSO
Перенос скриптов SQL в mysql

Перенос скриптов SQL в mysql

Создавал большую БД в SQL Server на локальном ПК, когда планировался сервер с WindowsПланы изменились и было решено использовать удаленный Linux сервер

248
Error Code: 1111 Invalid use of group function

Error Code: 1111 Invalid use of group function

Ребята как мне реализовать этот вариант :

315
Как быть с EditText если есть и FocusChangeListener и EditorActionListener

Как быть с EditText если есть и FocusChangeListener и EditorActionListener

У меня есть EditText, на котором висит onFocusChangeListener и onEditorActionListener

385
Moxy. Инъекция презентора в 2 вью

Moxy. Инъекция презентора в 2 вью

Всем приветВ фрагменте мне нужно обработать щелчек на кнопку назад

367