删除查询中的重复项

时间:2012-11-13 17:56:01

标签: 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行(CA1CA3CA4),因为我需要按以下条件删除行CA2

    1. CB2Column B
    2. 中重复
    3. CC7CC8
    4. 中的Column C不同

select也有超过20列,我不能(也许是我的错)做一个不同的或分组。

我尝试将其与自身交叉,但也无法正常工作,因为在第二个查询中连接两次相同的记录。

请指教!谢谢!

1 个答案:

答案 0 :(得分:0)

尝试:

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),如果这是你想要它们的选择