gpt4 book ai didi

sql - 在 FULL OUTER JOIN 中选择非空列

转载 作者:行者123 更新时间:2023-12-04 21:01:39 24 4
gpt4 key购买 nike

考虑以下表格:

Id     |   Name     |   Family
1 | name1 | family1
2 | name2 | family2

和:
Id     |   Orderr   |   Countt
1 | order1 | 17
1 | order2 | 18
3 | order3 | 16

以及以下查询:
select table1.id,table1.name,table1.family,table2.orderr,table2.countt
from table1 FULL OUTER JOIN table2
on table1.id = table2.id

它返回:
Id     |   Name     |   Family    |   Orderr   |   Countt
1 | name1 | family1 | order1 | 17
1 | name1 | family1 | order2 | 18
2 | name2 | family2 | NULL | NULL
NULL | NULL | NULL | order3 | 16

正如您在最后一行中看到的那样,它没有显示 Id 列。如何更改查询以返回最后一行中的 Id 列?我不想在我的选择查询中包含 table2.id 因为这样我将有两个 Id 列。

最佳答案

使用 COALESCE 或 ISNULL

COALESCE "returns the first non-null expression among its arguments," and ISNULL "replaces NULL with the specified replacement value."



http://sqlmag.com/t-sql/coalesce-vs-isnull 上的详分割析
SELECT ISNULL(table1.id, table2.id) AS id,
table1.name,table1.family,table2.orderr,table2.countt
FROM table1 FULL OUTER JOIN table2
ON table1.id = table2.id

或者
SELECT COALESCE(table1.id, table2.id) AS id,
table1.name,table1.family,table2.orderr,table2.countt
FROM table1 FULL OUTER JOIN table2
ON table1.id = table2.id

关于sql - 在 FULL OUTER JOIN 中选择非空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38540969/

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