gpt4 book ai didi

sql - Postgresql 表相交

转载 作者:行者123 更新时间:2023-11-29 14:23:09 24 4
gpt4 key购买 nike

我的 postgresql 数据库中有两个表。两个表都有相同的列。

我怎样才能更喜欢 tableA 中不为空的值?

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

谢谢

最佳答案

为什么不使用COALESCE假设 tableA 中的所有 recordID 都存在于 Table2 中

SELECT  a.ID,
COALESCE(a.name, b.name) AS "Name"
FROM TableA a
INNER JOIN TableB b
ON a.ID = b.ID

The COALESCE function returns the first of its arguments (there can be more arguments) that is not null.

这都是关于COALESCE,而不是连接本身。

关于sql - Postgresql 表相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14774978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com