现有表T
T表中有 a1,a2,a3  三列查询表 如果 a1,a2有一样的记录 但 a3不相同时  用a3 的值过滤 
 条件为 
a3 存在 1,2,3时 取 a3等于1 的记录显示
 a3 存在 2,3时 取 a3等于2 的记录显示
否则取 a3等于3 的记录显示

解决方案 »

  1.   

    如果存在1,2不存在3的话怎么办
    看描述似乎是取a3最小的那个记录
    select a1,a2,a3 from(
    select t.*,row_number()over(partition by a1,a2 order by a3)rn
      from t)
    where rn=1;
      

  2.   

    感觉说得不是很清楚,是不是
    select *
    from table 
    where a1=a2 and a3 = (select min(a3) from table)
    这样子行吗?
    这台机器没数据库,你先试一下