deptno, deptname, name,
1 部门一 张三
1 部门一 李四
1 部门一 王五
2 部门二 赵六
2 部门二 刘七上面的数据如何通过一条sql显示成下面的格式deptno, deptname, name,
1 部门一 张三
李四
王五
2 部门二 赵六
刘七
1 部门一 张三
1 部门一 李四
1 部门一 王五
2 部门二 赵六
2 部门二 刘七上面的数据如何通过一条sql显示成下面的格式deptno, deptname, name,
1 部门一 张三
李四
王五
2 部门二 赵六
刘七
解决方案 »
- oracle通过日志恢复一条数据
- 存储过程中创建表?
- 初学者问:IN OUT NOCOPY VARCHAR2是什么意思?
- 请教select 分组求和嵌套聚合
- 问个SQL语句优化问题
- 反编译ORACLE的存贮过程问题
- extend用法
- Oracle开发(web)应用的基础问题(步骤)
- 谁用过ORACLE的OTT? (UP有分)
- 求个PLSQL的快捷键
- oracle blob字段 写入图片问题
- 表空间问题:知道一个表空间所在的位置,但是试图登录表空间的时候提示无法登录 ,用system/manager登录提示是:ERROR:ORA-01033: ORACLE initialization or shutdown in progress
你可以用lag来取上一条来做判断
我写语句,先去测试好贴出来
WITH a AS
(SELECT 1 deptno, '部门一' deptname, '张三' NAME
FROM DUAL
UNION ALL
SELECT 1, '部门一', '李四'
FROM DUAL
UNION ALL
SELECT 1, '部门一', '王五'
FROM DUAL
UNION ALL
SELECT 2, '部门二', '赵六'
FROM DUAL
UNION ALL
SELECT 2, '部门二', '刘七'
FROM DUAL)
SELECT DECODE (ROW_NUMBER () OVER (PARTITION BY deptno ORDER BY deptname,
NAME),
1, deptno,
NULL
) deptno,
DECODE
(ROW_NUMBER () OVER (PARTITION BY deptno, deptname ORDER BY NAME),
1, deptname,
NULL
) deptname,
NAME
FROM a结果
Row# DEPTNO DEPTNAME NAME1 1 部门一 李四
2 王五
3 张三
4 2 部门二 刘七
5 赵六
DECODE (rn2, 1, deptname, NULL) deptname, NAME
FROM (SELECT a.*,
ROW_NUMBER () OVER (PARTITION BY deptno ORDER BY deptname,
NAME) rn1,
ROW_NUMBER () OVER (PARTITION BY deptno, deptname ORDER BY NAME)
rn2
FROM a
ORDER BY a.deptno, deptname, NAME)
这样能保证输出结果按正确的顺序显示
否则万一你的数据不是顺序插入的,显示出来会混乱的