gpt4 book ai didi

sql - NULL 在连接中不匹配

转载 作者:行者123 更新时间:2023-12-02 07:22:55 26 4
gpt4 key购买 nike

我有两个表A和B

表A

subgroup    |   maingroup   |   
------------------------------------------
NULL | A |
NULL | A |
Top | B |
Top | B |

表B

subgroup
---------------
top
NULL

我正在运行这个查询。

select * from a
join b
on a.subgroup=b.subgroup
group by a.subgroup,a.maingroup,b.subgroup

我得到这个输出

subgroup    |   maingroup   |   subgroup    
-------------------------------------------------------
Top | B | Top

我担心的是为什么 NULL 不匹配并给我输出NULL 一个 Null。

我正在使用 MSSQL

最佳答案

如果您希望两个表中的 NULL 值在连接期间匹配,一种选择是在您的 ON 子句中添加显式条件:

SELECT *
FROM a INNER JOIN b
ON a.subgroup = b.subgroup OR (a.subgroup IS NULL AND b.subgroup IS NULL)
GROUP BY a.subgroup, a.maingroup, b.subgroup

需要显式连接条件 a.subgroup IS NULL AND b.subgroup IS NULL 是比较两个 NULL 值是否相等本身返回 NULL,这是表示结果未知的另一种方式。

关于sql - NULL 在连接中不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38090030/

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