oracle 实现不同字段显示成一行数据
来源:互联网 发布:linux 开发工具 编辑:程序博客网 时间:2024/04/28 03:34
该需求涉及到两个知识点:1、分析函数;2、行列转换。
先讲实现
第一步:建测试表
第二步:对表进行分组,组内编号1,2,3
第三步:行列转换,完成
再讲知识点
1、row_number()over(partition by col1 order by col2)colnum
通过col1字段进行分组,并组内编号
row_number() over ([partition by col1] order by col2) ) as 别名
表示根据col1分组,在分组内部根据 col2排序
而这个“别名”的值就表示每组内部排序后的顺序编号(组内连续的唯一的),[partition by col1] 可省略。关于该知识点的实例详解,可以进原作者空间看看:http://user.qzone.qq.com/362701082/blog/1322635025
2、max(decode(colnum,1,col2,null))colA
先讲实现
第一步:建测试表
1
2
3
4
5
6
7
8
9
10
11
12
13
create
table
COL_TO_ROW
(
COL1 VARCHAR2(20),
COL2 VARCHAR2(20)
)
insert
into
col_to_row
values
(
'A'
,
'1'
);
insert
into
col_to_row
values
(
'A'
,
'12'
);
insert
into
col_to_row
values
(
'B'
,
'2'
);
insert
into
col_to_row
values
(
'B'
,
'23'
);
insert
into
col_to_row
values
(
'C'
,
'3'
);
insert
into
col_to_row
values
(
'C'
,
'334'
);
insert
into
col_to_row
values
(
'C'
,
'355'
)
select
*
from
COL_TO_ROW
第二步:对表进行分组,组内编号1,2,3
1
select
col1,col2,row_number()over(partition
by
col1
order
by
col2)colnum
from
COL_TO_ROW
第三步:行列转换,完成
1
2
3
select
col1,
max
(decode(colnum,1,col2,
null
))colA,
max
(decode(colnum,2,col2,
null
))colB,
max
(decode(colnum,3,col2,
null
))colC
from
(
select
col1,col2,row_number()over(partition
by
col1
order
by
col2)colnum
from
COL_TO_ROW
)
group
by
col1
再讲知识点
1、row_number()over(partition by col1 order by col2)colnum
通过col1字段进行分组,并组内编号
row_number() over ([partition by col1] order by col2) ) as 别名
表示根据col1分组,在分组内部根据 col2排序
而这个“别名”的值就表示每组内部排序后的顺序编号(组内连续的唯一的),[partition by col1] 可省略。关于该知识点的实例详解,可以进原作者空间看看:http://user.qzone.qq.com/362701082/blog/1322635025
2、max(decode(colnum,1,col2,null))colA
0 0
- oracle 实现不同字段显示成一行数据
- Oracle 根据字段条件显示不同字段
- Oracle Union时新添字段区分不同的表数据
- Oracle下实现数据字段自增
- Oracle 将表中多条数据同一字段拼成一列显示
- GridView表格字段显示不同数据库表的数据(如数字转换为对应的文字显示【不同数据库】)
- Oracle 字段格式显示
- 一行显示5条数据
- asp.net实现 gridview 鼠标单击任意字段选中一行 ,并获取数据
- 查字段指定数据后一行记录
- 合并字段数据,多行转一行(1)
- 合并字段数据,多行转一行(2)
- ALV HTML 格式的 同一行 不同字段大小问题
- oracle 按照分组字段,排序字段取出第一行
- DBGRID自定义数据字段显示(导出)实现一例
- Android GridView实现多种不同布局样式显示数据
- Android GridView实现多种不同布局样式显示数据
- Android GridView实现多种不同布局样式显示数据
- 将Yii2和Workerman结合
- java8中的Lambda表达式
- ruby语法课1
- lod详解
- Android 默认暗码
- oracle 实现不同字段显示成一行数据
- Progress实践
- 取消Win10系统Alt+Tab中的缩略图预览功能
- storyboard tableview section
- jQuery 性能优化
- 程序员面试金典第一章:数组与字符串(1) 确定字符互异
- Java 字符串
- jedis操作redis
- 13.JAVA基础:八进制,十六进制表示