我有一个MS Access查询,显示以下数据。
我想编写一些SQL,在执行时会显示以下结果。
我的规则如下,并基于 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);
任何帮助都会很棒。
答案 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';
如果您没有行的唯一标识符,这将更加困难。