怎样即distinct某一字段,又能得到记录集的其他字段?

joaquintevez 2006-06-09 09:25:00
怎样即distinct某一字段,又能得到记录集的其他字段
select distinct 字段A from 表名 where 字段B = 某值;
检索出来的记录只有字段,怎样能得道其他字段呢?
...全文
433 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2006-06-11
  • 打赏
  • 举报
回复
select 字段A,字段B,字段C,字段D,... from 表名 right join (select distinct 字段A from 表名 where 字段B = 某值) tb1 on 表名.字段A=tb1.字段A
goldarcher2005 2006-06-10
  • 打赏
  • 举报
回复
first_value()实现同值的第一条记录
hyrongg 2006-06-10
  • 打赏
  • 举报
回复
或者
SQL> select a,b,c from (select a,b,c,row_number() over(partition by a order by a) rd from test) where rd=1;

A B C
---------- ---------- ----------
1 1 1
2 1 3
hyrongg 2006-06-10
  • 打赏
  • 举报
回复
SQL> create table test(a number,b number,c number);

Table created

SQL> insert into test select 1,1,1 from dual
2 union all select 1,1,1 from dual
3 union all select 2,1,3 from dual
4 union all select 2,2,4 from dual;

4 rows inserted

SQL> select * from test;

A B C
---------- ---------- ----------
1 1 1
1 1 1
2 1 3
2 2 4

SQL> select a,max(b) b,max(c) c from test
2 group by a;

A B C
---------- ---------- ----------
1 1 1
2 2 4

SQL>
boydgmx 2006-06-09
  • 打赏
  • 举报
回复
分析函数 first_value()
doer_ljy 2006-06-09
  • 打赏
  • 举报
回复
勘误
逻辑上讲不*同*的
“同”字应为“通”
doer_ljy 2006-06-09
  • 打赏
  • 举报
回复
A B C
1 1 1
1 2 2
2 1 3
2 2 4
distinct A以后,B和C的值你如何关联?
逻辑上讲不同的,除非如下
A B C
1 1 1
1 1 1
2 2 2
2 2 2
那么distinct a,b,c
可以留下两条纪录

17,380

社区成员

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

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