我有一个查询将两个不同表中的一些选择合并在一起
我目前最终的结果如下:
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
到目前为止,我已经用选择包围了原始联合,我想我需要某种 WHERE、HAVING 或 GROUP BY。
有什么想法吗?
最佳答案
也许您可以将 CTE 与 ROW_NUMBER
结合使用:
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
关于sql - 与 null 的不同联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26280165/