首页 > 解决方案 > 带有可以返回空值的连接的 SQL 添加

问题描述

Table1并且Table2都包含名为Username和的列ScoreTable1保证有查询所需的所有用户,而Table2只有这些用户的子集。如何编写此查询,以便即使 Table2 不包含匹配的用户,我也始终获得两个表的总分?换句话说,如果 Table2 中为 null,我想将其视为零。

            Table1    Table2
User1       200       100
User2       200       NULL
User3       200       300

User1 TotalScore = 300
User2 TotalScore = 200
User3 TotalScore = 500

标签: sqlsql-server

解决方案


我认为一个简单的聚合就可以了

Select UserName
      ,Score=sum(Score)
 From (
        Select UserName,Score From Table1
        Union All
        Select UserName,Score From Table2
      ) A
 Group By UserName

推荐阅读