#mysql #sql
Вопрос:
Я пытаюсь выполнить вложенный случай при запросе. В моей таблице есть столбцы ID, code1 и code2. create table as select ID, code1 case when code1 is not null then 'yes' else (select code2, case when code 2 is not null then 'no' else 'NA' from table) from table
Чего я хочу добиться, так это того, что если код1 равен нулю, я хочу продолжить и проверить, является ли код 2 нулевым или нет. Если code1 не равен нулю, то он сразу получает тег » да » без каких-либо проверок на code2. Каков был бы правильный способ сделать это. Любая помощь будет признательна. Спасибо.
Комментарии:
1. Есть ли причина, по которой вы приняли последний ответ?
Ответ №1:
В сочетании с созданием таблицы вы получаете идентификатор и тег с вашей спецификацией
CREATE TABLE mynewtable SELECT ID,
CASE
WHEN code1 IS NOT NULL THEN 'yes'
WHEN code2 IS NOT NULL THEN 'no'
ELSE 'NA'
END tag FROM
table1
Ответ №2:
Вам нужно только 1 CASE
выражение:
SELECT ID, code1,
CASE
WHEN code1 IS NOT NULL THEN 'yes'
WHEN code2 IS NOT NULL THEN 'no'
ELSE 'NA'
END AS tag
FROM tablename
Каждая WHEN
ветвь обрабатывается только в том случае, если предыдущие завершились неудачно.