将结果集反向转置为一列
来源:互联网 发布:javbus防屏蔽域名 编辑:程序博客网 时间:2024/05/19 04:05
把查询中返回的所有列转换为1列。例如,返回DEPTNO 10 中所有员工的ENAME,JOB和SAL,而且要把这3个值放到一列中。为每个员工返回3行信息,而且在两个员工之间加一个空白行,希望返回的结果集如下:
解决方案:
关键是用笛卡儿积为每个员工返回4行,这样就可以为每列产生一行,而且在两个员工之间加一个空白行。
select case rn
when 1 then ename
when 2 then job
when 3 then cast(sal as char(4))
end emps
from (
select e.ename,e.job,e.sal,
row_number()over(partition by e.empno order by e.empno)rn
from scott.emp e,
(select *
from scott.emp where job = 'CLERK') four_rows
where e.deptno=10
)x
when 1 then ename
when 2 then job
when 3 then cast(sal as char(4))
end emps
from (
select e.ename,e.job,e.sal,
row_number()over(partition by e.empno order by e.empno)rn
from scott.emp e,
(select *
from scott.emp where job = 'CLERK') four_rows
where e.deptno=10
)x
讨论:
select * from (
select e.ename,e.job,e.sal,
row_number()over(partition by e.empno order by e.empno)rn
from scott.emp e,
(select *
from scott.emp where job = 'CLERK') four_rows
where e.deptno=10
)x
select e.ename,e.job,e.sal,
row_number()over(partition by e.empno order by e.empno)rn
from scott.emp e,
(select *
from scott.emp where job = 'CLERK') four_rows
where e.deptno=10
)x
- 将结果集反向转置为一列
- 将结果集反向转置为一列
- 用SQL实现结果集的各种转换----将结果集反向转置为一列
- oracle 将查询结果中的一列合并为一个字符串
- 反向转置结果集
- oracle 将查询结果中的一列多个结果合并为一个字符串 并以逗号格开
- GROUP BY的另种使用方法:将结果集一列的内容作为一个单元格显示
- 将JDBC结果集转换为XML
- SQL结果集转换--附多行转为一列
- 将一列字符串显示为转换为多行显示
- MSSQL 将一列中的多行拼接为一行
- 将一列的多行数值转化为字符串
- hibernate 将一列添加为辅助主键的方法
- T_SQL 将一列多行数据合并为一行
- 如何将数据库中一列的值转化为数组
- T_SQL 将一列多行数据合并为一行
- SQL/Oracle 将一列多行合并为一行
- T_SQL 将一列多行数据合并为一行
- [收藏]html5学习网站
- hibernate一对一唯一外键关联映射(双向关联PersonIdCard)
- 对alternate和winding填入方式的理解 《windows程序设计》笔记
- C++执行时间统计的一种方法
- [学习记录] oracle:安装过程
- 将结果集反向转置为一列
- 为项目中的URL中文参数,使用的加密类,包含判断字符是否是中文的方法
- 选择最好的PHP MVC开发框架
- ubuntu中关于开启telnet认识到的问题
- 深入理解C++的动态绑定和静态绑定
- 物料编码---制造业企业信息化的源头
- java面向对象2_第六天
- 默认参数与重载不可同时使用
- ext中文传参乱码