如有表资料如下 部门 人员
A 张XX
A 李XX
A 王XX
A 陈XX
A 钱XX ...... B 黄XX
B 朱XX
B 金XX
B XXX
................
现在想让它如下显示(只用SELECT 语句) 假如一行只显示同部门的三个人员。 部门 人员1 人员2 人员3
A 张XX 李XX 王XX
A 陈XX 钱XX B 黄XX 朱XX 金XX
B XXX
...............
诚心向大侠请教。
TKS!!!
A 张XX
A 李XX
A 王XX
A 陈XX
A 钱XX ...... B 黄XX
B 朱XX
B 金XX
B XXX
................
现在想让它如下显示(只用SELECT 语句) 假如一行只显示同部门的三个人员。 部门 人员1 人员2 人员3
A 张XX 李XX 王XX
A 陈XX 钱XX B 黄XX 朱XX 金XX
B XXX
...............
诚心向大侠请教。
TKS!!!
解决方案 »
- weblogic的JVM GC设置
- 不能启动OracleDBCsonsole,怎么处理
- 数据库数据丢失问题
- 在ORACLE里写存储过程时,编译出现"无法将NULL值插入 ("SYS"."OBJ$"."NAME")"是怎么回事?
- ************存储过程中能否使用分析函数?*************
- ORACLE中UPDATE语句的问题
- Oracle视图中如何取出记录集中最后一条记录(急!)
- 修改表结构的问题,请教高手!!谢谢。
- (100分)在SQL*Plus中如何查看已建立的存储过程、触发器和视图,用什么命令,能否详细点(急等指点)
- 请教一个oracle的算法问题,关于取数据
- 请教关于触发器
- linux虚拟机FTP问题
小弟刚学ORACLE,,, 不太明白。。能否给出相应的SQL ,,谢谢!!
with tt as(select 'A' id,'张三' name from dual
union all select 'A','李四' from dual
union all select 'A','王五' from dual
union all select 'A','赵六' from dual
union all select 'B','王文' from dual)select id 部门,max(decode(mod(rn-1,3),0,name))人员1,
max(decode(mod(rn-1,3),1,name)) 人员2,
max(decode(mod(rn-1,3),2,name)) 人员3
from(
select tt.*,row_number()over(partition by id order by rownum)rn
from tt)
group by id,trunc((rn-1)/3)部门 人员1 人员2 人员3
A 张三 李四 王五
A 赵六
B 王文