SQL查询根据重复值过滤行

时间:2014-10-02 22:34:56

标签: sql ms-access access-vba ms-access-2007

我有一个MS Access查询,显示以下数据。

enter image description here

我想编写一些SQL,在执行时会显示以下结果。

enter image description here

我的规则如下,并基于 Field5

如果Field5<>中的值' C'然后只为任何其他值显示1行。

我开始使用子查询并使用First运算符,但因为我表中的所有其他值都是唯一的,所有行仍然会显示。

这是我的不良尝试:

SELECT T.Field1, T.Field2, T.Field3, T.Field4, First(T.Field5) AS FirstOfField5
FROM Table1 as T
GROUP BY T.Field1, T.Field2, T.Field3, T.Field4
ORDER BY First(T.Field5);

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:2)

如果我们假设每行field1都是唯一的,您可以这样做:

SELECT T.Field1, T.Field2, T.Field3, T.Field4, T.Field5
FROM Table1 as T JOIN
     (SELECT t.Field5, MIN(t.Field1) as Field1
      FROM table1
      GROUP BY t.Field5
     ) as tt
     ON tt.Field1 = t.Field1 or t.Field5 = 'C';

如果您没有行的唯一标识符,这将更加困难。