现有表T
T表中有 a1,a2,a3 三列查询表 如果 a1,a2有一样的记录 但 a3不相同时 用a3 的值过滤
条件为
a3 存在 1,2,3时 取 a3等于1 的记录显示
a3 存在 2,3时 取 a3等于2 的记录显示
否则取 a3等于3 的记录显示
T表中有 a1,a2,a3 三列查询表 如果 a1,a2有一样的记录 但 a3不相同时 用a3 的值过滤
条件为
a3 存在 1,2,3时 取 a3等于1 的记录显示
a3 存在 2,3时 取 a3等于2 的记录显示
否则取 a3等于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;
select *
from table
where a1=a2 and a3 = (select min(a3) from table)
这样子行吗?
这台机器没数据库,你先试一下