accsess中2个字段交叉相同的记录按条件只取1条 [
accsess中2个字段交叉相同的记录按条件只取1条 [
问一个SQL语句该怎么写。例如:
ACCESS数据库,表名tab
id a b
1 22 10
2 10 22
3 22 10
4 10 22
5 8 22
6 22 8
7 4 8
8 11 5
从上面的表中可以看出,前4行的字段a和字段b数据基本一样,只是颠倒了顺序。而后2行也是如此。目前已将以上相同的数据显示为id最大的那1行,最终结果是:
id a b
4 10 22
6 22 8
7 4 8
8 11 5
但现在我只需要显示a=22和b=22的记录,就像这样
id a b
4 10 22
6 22 8
试着书写:
select * from tab t
where not Exists (select 1 from tab where ((a=t.a and b=t.b) or (a=t.b and b=t.a)) and id>t.id) and a=22 or b=22 可执行后的结果还是有重复记录,应该如何修改?谢谢!
select * from tab t
where not Exists (select 1 from tab where ((a=t.a and b=t.b) or (a=t.b and b=t.a)) and id>t.id)
and (a=22 or b=22)
注意OR,AND的运算优先次序。