Sql 带null的不同并集

Sql 带null的不同并集,sql,sql-server,Sql,Sql Server,我有一个查询,它将两个不同表中的一些选择合并在一起 我目前得出的最终结果如下: ColA ColB ColC ------------------------- 1 | NULL DEF 1 2 | ABC DEF 1 3 | NULL GBY 1 B列最多有两条相同值的记录。在这种情况下,我只想为A列选择不为NULL的记录 最终结果将是: ColA ColB ColC ---

我有一个查询,它将两个不同表中的一些选择合并在一起

我目前得出的最终结果如下:

    ColA      ColB    ColC
  -------------------------
1 | NULL      DEF      1
2 | ABC       DEF      1
3 | NULL      GBY      1
B列最多有两条相同值的记录。在这种情况下,我只想为A列选择不为NULL的记录

最终结果将是:

    ColA      ColB    ColC
  -------------------------
1 | ABC       DEF      1
2 | NULL      GBY      1
到目前为止,我已经用一个select包围了最初的联盟,我想我需要某种形式的WHERE、have或GROUP BY


有什么想法吗?

也许您可以使用带有
行号的CTE

WITH CTE AS
(
  SELECT ColA, ColB, ColC, 
         RN = row_number() over (partition by ColB Order By ColA DESC)
  FROM dbo.TableName -- or your query 
)
SELECT ColA, ColB, ColC
FROM CTE
WHERE RN = 1
试试这个:

 select colA, max(colB) as colB, colC
 from table
 group by colA, colC

MAX(ColA),ColB集团的ColB应该这样做。应该解释还有其他专栏,只是A和B是两个重要的专栏
 select colA, max(colB) as colB, colC
 from table
 group by colA, colC