используя условие if в снежинке - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть две таблицы, как показано ниже со столбцами:

Table A
a, b, c, id 

Table B 
d, e, f, g, h, id 

Теперь мне нужно выполнить запрос, в основном я получу идентификатор от пользователя, поэтому мне нужно проверить, присутствует ли этот идентификатор в таблице A или таблица B. Таким образом, запись будет присутствовать в любой из таблиц

SELECT * FROM tableA WHERE id = 123 
OR 
SELECT * FROM tableB WHERE id = 123

. Таким образом, ответом будут столбцы таблицы A или столбцы таблицы B. Но я не могу выполнить объединение, так как столбцы должны быть равны между двумя таблицами.

Так что это в основном условие if, как я могу получить желаемый результат в Snowflake.

И использование if - это лучший оптимизированный подход или любой другой способ

1 Ответ

1 голос
/ 11 февраля 2020

Вы можете использовать union all - при условии, что типы совместимы. Просто добавьте меньшую таблицу:

select a, b, c, null as g, null as h, id 
from a
where id = 123
union all
select d, e, f, g, h, id 
from b
where id = 123;

Если вы хотите разделить столбцы, тогда full join выполнит следующее:

select *
from a full join
     b
     using (id)
where a.id = 123 or b.id = 123;
...