从Datagridview中删除特定列中具有相同值的行。

时间:2013-03-14 22:11:01

标签: sql select join

来自:

|-------------------------------|
| Column1 |  Column2  |  Column3|
|-------------------------------|
|   1     |     2     |    3    |
|-------------------------------|
|   1     |     2     |    4    |
|-------------------------------|
|   1     |     2     |    4    |
|-------------------------------|
|   2     |     5     |    6    |
|-------------------------------|
|   3     |     7     |    7    |
|-------------------------------|

我怎样才能做到这一点:

|-------------------------------|
| Column1 |  Column2  |  Column3|
|-------------------------------|
|   1     |     2     |    3    |
|-------------------------------|
|   2     |     5     |    6    |
|-------------------------------|
|   3     |     7     |    7    |
|-------------------------------|

仅基于第3列有2个不同的行,值为4的事实。

这个数据网格可以达到数千个,所以有一个经济有效的方法可以做到这一点。

2 个答案:

答案 0 :(得分:0)

举个例子,我会选择'包含'列的最小值:

select a.column1, a.column2, min(a.column3) as column3
from table as a
group by a.column1, a.column2

答案 1 :(得分:0)

根据您的情况选择

SELECT *
FROM dbo.yourTable t
WHERE EXISTS (         
              SELECT 1
              FROM dbo.yourTable t2
              WHERE t2.Column3 = t.Column3
              HAVING COUNT(*) = 1
              )