Я пытаюсь создать новый столбец (своего рода флаг идентификатора) для строк «Null» в результате моего следующего левого соединения:
with CTE (...) as (
... unrelated code
) select * from CTE
left join (select columnID from table1) Pu
on CTE.columnID = Pu.columnID
left join (select case when bz.column2 is null then 'null test is working' else columnID2, column2 end FROM table2) Bz
ON CTE.columnID2 = Bz.columnID2
Этот код работает правильно, когда я непопробуйте использовать «случай, когда».На самом деле, вы могли бы очень хорошо проигнорировать первое левое соединение.
Моя цель состояла бы в том, чтобы иметь возможность проверить результат левого соединения при этом и действовать в зависимости от результата:
Если результат левого соединения дает пустую строку: создание столбца флага для строки,
Если результат левого соединения дает нормальную строку: левое соединениевыполняется нормально , а столбец флага пуст (как я подозреваю, он не может существовать).
Я был бы рад, если бы вы могли помочь мне!
РЕДАКТИРОВАТЬ: пример таблицы:
CTE
| columnID | columnID2 | InformationsCTE |
| ab | mp | randominfo1 |
| ac | ma | randominfo2 |
| ae | me | randominfo3 |
| ad | mb | randominfo4 |
table2
| columnID2 | InformationsTable2 |
| mp | randominfo5 |
| ma | randominfo6 |
| me | randominfo7 |
Результат после второго левого соединения:
new CTE
| columnID | columnID2 | InformationsCTE | InformationsTable2| FLAG |
| ab | mp | randominfo1 | randominfo5 | OK |
| ac | ma | randominfo2 | randominfo6 | OK |
| ae | me | randominfo3 | randominfo7 | OK |
| ad | mb | randominfo4 | NULL | NOK |