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