Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 删除查询中的重复项_Sql Server_Sql Server 2005_Duplicates_Duplicate Removal - Fatal编程技术网

Sql server 删除查询中的重复项

Sql 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也有

我有一个超过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也有超过20多列,我无法(可能是我的错)执行distinct或group by

我试图将它与自身交叉,但也不起作用,因为在第二个查询中,将同一条记录连接两次

请告知!谢谢

试试看:

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子句中?