Sql server 删除查询中的重复项
我有一个超过20列的视图 我有以下情况: 表XSql server 删除查询中的重复项,sql-server,sql-server-2005,duplicates,duplicate-removal,Sql Server,Sql Server 2005,Duplicates,Duplicate Removal,我有一个超过20列的视图 我有以下情况: 表X Column A | Column B | Column C CA1 | CB2 | CC7 CA2 | CB2 | CC8 CA3 | CB3 | CC5 CA4 | CB4 | CC6 如何执行以下查询 仅显示3行(CA1、CA3和CA4),因为我需要按以下条件删除行CA2: CB2在列B中重复 CC7不同于C列中的CC8 select也有
Column A | Column B | Column C
CA1 | CB2 | CC7
CA2 | CB2 | CC8
CA3 | CB3 | CC5
CA4 | CB4 | CC6
如何执行以下查询
- 仅显示3行(
、CA1
和CA3
),因为我需要按以下条件删除行CA4
:CA2
在CB2
列B中重复
不同于CC7
C列中的
CC8
SELECT
mina.colB,
mina.min_a,
tblx.colC
FROM tblx INNER JOIN
(SELECT
colB,
MIN(colA) AS min_a
FROM tblx
GROUP BY
colB
) mina ON
mina.min_a = tblx.colA AND
mina.colB = tblx.colB
或者您可以使用max(colc)而不是min(colA),如果您希望这样选择它们的话您如何/为什么让CA1优先于CA2?它违反了与CA2相同的两个条件。如果您提供要加入/查询的表的简化结构,可能会更有帮助。CC5与C列上的CC6不同,那么为什么要返回CA4?@Beth我更正了CA4,对不起。@VinodVishwanath因为在数据上,CC8的实际值为零如果要排除零,可以将其放在WHERE子句中?