У меня есть две таблицы в моей базе данных postgresql. Обе таблицы имеют одинаковые столбцы.Таблицы Postgresql пересекаются
Как я могу выбрать значения из таблицы A, которые не являются нулевыми?
TableA
id | name
1 | val_a_1
2 | val_a_2
3 | (null)
TableB
id | name
1 | (null)
2 | val_b_2
3 | val_b_3
Результат, который я хочу получить:
id | name
1 | val_a_1
2 | val_a_2
3 | val_b_3
На данный момент у меня это так, но ее более сложной, потому что есть много колонн.
SELECT *
CASE
WHEN TableA.name is NULL or TableA.name = ''
THEN (SELECT TableB.name FROM TableB where TableB.id = 1)
ELSE TableA.name
END
AS name,
CASE
.
. another columns
.
END
Благодаря
Ну, у нас есть некоторые сложности здесь. Данные, которые мы хотим выбрать, независимы друг от друга и не имеют ничего общего с ID в вашем случае /. А также .. У нас около 25 столбцов, так что «coalesce (a.name, b.name) AS name» для каждого столбца будет стрессовым :) Если вы понимаете - у меня есть одна уникальная строка в таблице A и одна уникальная строка в таблицеB, и эти две выбранные строки я хочу «объединить». Как, сливаются, но между двумя выбранными рядами. У нас есть случай, когда тогда, но это тоже очень напряженный, если вы знаете, что я имею в виду :) – anti