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的运算优先次序。

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有