sql - 与 null 的不同联合

标签 sql sql-server

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

我目前最终的结果如下:

    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-Fiddle

关于sql - 与 null 的不同联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26280165/

相关文章:

sql - JIRA查询没有 parent 的问题

sql - Oracle SQL 何时使用完整提示

sql - MySQL:按 LIKE 连接两个表

sql - updated_at 和 creatd_at 之间的差异的事件记录子集

sql-server - SQLx 到 Mssql 连接字符串

sql-server - 存储过程执行时间过长时发出 SQL 警报

sql - 如何在 SELECT T-SQL 命令的结果集中包含返回的行总数?

sql - T-SQL 上的 RANK、ROW_NUMBER

c# - 替换列中的多个字符串元素

本地计算机上多个进程的 SQL CE 文件共享冲突