Как делает Патронажную работу MySQL?

Я знаю что SQL CASE синтаксис следующие:

CASE
    WHEN search_condition THEN statement_list
    [WHEN search_condition THEN statement_list] ...
    [ELSE statement_list]
END CASE

Однако я не понимаю, как это работает, возможно потому что я думаю об этом как о if оператор.

Если у меня есть поле в таблице user_role, например, который содержит имена как "менеджер", "Неполный рабочий день" и т.д., как я генерирую поле role_order с другим числом в зависимости от роли. В случае этого примера, "если user_role = 'менеджер' затем role_order = 5".

Обратите внимание, что я ищу учение человека, как ловить ответ, а не дать человеку ответ рыбы.

63
задан Sinister Beard 19 December 2014 в 09:28
поделиться

1 ответ

CASE больше похож на оператор switch. В нем есть два синтаксиса, которые вы можете использовать. Первый позволяет использовать любые операторы сравнения:

CASE 
    WHEN user_role = 'Manager' then 4
    WHEN user_name = 'Tom' then 27
    WHEN columnA <> columnB then 99
    ELSE -1 --unknown
END

Второй стиль предназначен для случаев, когда вы рассматриваете только одно значение, и является более лаконичным:

CASE user_role
    WHEN 'Manager' then 4
    WHEN 'Part Time' then 7
    ELSE -1 --unknown
END
106
ответ дан 24 November 2019 в 16:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: