2007年12月27日星期四

SQL查询多列值唯一的记录

用SQL语句在表中查询字段(A+B)值唯一的记录
例如表TABLE中有字段FIELD1,FIELD2,FIELD3,现在需要查询FIELD1+FIELD2值唯一的记录,且满足FIELD2值不为空条件,按照FIELD3排序
SQL语句如下:
SELECT FIELD1,FIELD2,FIELD3 FROM TABLE A WHERE FIELD2 IS NOT NULL AND ROWID = (SELECT MAX(ROWID) FROM TABLE B WHERE A.FIELD1 = B.FIELD1 AND A.FIELD2 = B.FIELD2) ORDER BY FIELD3
注意:1、MAX可以由MIN替换
2、在oracle中测试通过,不知在其他数据库中是否正确,因为oracle为每个表隐藏了一个rowid

没有评论: