Условные SQL-запросы с SQL-скриптом
У меня есть две таблицы примеров:
TABLE1:
ID | COLUMN_B| COLUMN_C
_________|_________|_________
1 | 0 | 1
________|_________|_________
2 | 0 | 1
________|_________|_________
3 | 0 | 1
TABLE2:
ID | COLUMN_E| COLUMN_F
________|_________|________
1 | Y | X
________|_________|_________
2 | Y | X
________|_________|_________
3 | Y | X
Они связаны друг с другом с помощью столбца ID. Я хотел бы выполнить выбор для TABLE1, перенеся COLUMN_B и COLUMN_C, только если значение для COLUMN_E равно Y.
Можно ли создать условие, имитирующее что-то вроде: "выберите column_b и выберите column_c IF И ТОЛЬКО ЕСЛИ значение для column_e из TABLE2 равно Y для того же идентификатора"?
2 ответа
Решение
Если я правильно понимаю, это просто case
выражение:
select t1.column_b,
(case when t2.column_e = 'Y' then t1.column_c end) as column_c
from table1 t1 left join
table2 t2
on t1.id = t2.id;
Использовать соединение
select t1.COLUMN_B,
case when t2.COLUMN_E='Y' then t1.COLUMN_C else null
end as c from table1 t1
left join table2 t2 on t1.id=t2.id