返回部分数据问题

夜未眠风已息 2011-08-20 12:25:02
oracle数据库中存在如下表及数据
create table t_a(a number ,b varchar2(10),c varchar2(20));
insert into t_a values(1,'aa','aaa');
insert into t_a values(1,'bb','bbb');
insert into t_a values(2,'cc','ccc');
insert into t_a values(2,'dd','ddd');
insert into t_a values(8,'ee','eee');
insert into t_a values(8,'ff','fff');
insert into t_a values(8,'ff','hhh');
commit;
现欲获取如下结果
1 aa aaa
2 cc ccc
8 ee eee
请问各位pl/sql语句怎么写呢
...全文
35 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
areswang 2011-08-20
  • 打赏
  • 举报
回复
select * from t_a t
where not exists
(select 1 from t_a
where t.a=a
and t.b>b)
areswang 2011-08-20
  • 打赏
  • 举报
回复

---SQLSERVER2005如下:


create table t_a(a int ,b varchar(10),c varchar(20));
go

insert into t_a values(1,'aa','aaa');
insert into t_a values(1,'bb','bbb');
insert into t_a values(2,'cc','ccc');
insert into t_a values(2,'dd','ddd');
insert into t_a values(8,'ee','eee');
insert into t_a values(8,'ff','fff');
insert into t_a values(8,'ff','hhh');

with t as(
select row_number() over(partition by a order by a) nm,
*
from t_a
)
select a,b,c from t
where nm=1
夜未眠风已息 2011-08-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 areswang 的回复:]
select * from t_a t
where not exists
(select 1 from t_a
where t.a=a
and t.b>b)
[/Quote]
添加如下数据再查询就出错了
insert into t_a values(3,'xa','cde');
insert into t_a values(3,'xa','rrr');
commit;
夜未眠风已息 2011-08-20
  • 打赏
  • 举报
回复
那你子查询还得加上 and t.c>c 不然添加如下数据再查询就出错了
insert into t_a values(3,'xa','cde');
insert into t_a values(3,'xa','rrr');
commit;
[Quote=引用 2 楼 areswang 的回复:]
select * from t_a t
where not exists
(select 1 from t_a
where t.a=a
and t.b>b)
[/Quote]

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧