Red*_*vil 2 sql sql-server join
我有2张桌子A和B.
表A.
subgroup | maingroup |
------------------------------------------
NULL | A |
NULL | A |
Top | B |
Top | B |
Run Code Online (Sandbox Code Playgroud)
表B.
subgroup
---------------
top
NULL
Run Code Online (Sandbox Code Playgroud)
我正在运行此查询.
select * from a
join b
on a.subgroup=b.subgroup
group by a.subgroup,a.maingroup,b.subgroup
Run Code Online (Sandbox Code Playgroud)
我得到了这个输出
subgroup | maingroup | subgroup
-------------------------------------------------------
Top | B | Top
Run Code Online (Sandbox Code Playgroud)
我担心的是为什么NULL不匹配,并给我输出像NULL A 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
Run Code Online (Sandbox Code Playgroud)
显式连接条件的需要a.subgroup IS NULL AND b.subgroup IS NULL
是比较两个NULL
值的相等本身返回NULL
,这是另一种说明结果未知的方式.
归档时间: |
|
查看次数: |
74 次 |
最近记录: |