如:decode(ex1,ex2,ex3,ex4); [这里的ex1 ,ex3代表的是列,ex2代表的是列的值,ex4代表的自定义值]
表示:将ex1列里的值和ex2列的值进行比较,如果相同,则反回对应ex1某列的行的ex3列的值,不同则返回ex4 ,如果数据固定,ex4可以省略,if....exle语句 如果ex1的值=ex2则返回ex3,否则返回ex4
如:
select t.row_num , t.col_id , t.Col_Value
from brpms.tb_rpt_data t
所查询的数据为:
ROW_NUM COL_ID COL_VALUE
4 2 刘家峡水电厂
4 3 刘家1
4 4 刘家2
5 2 刘家3
5 3 刘家4
5 4 刘家5
期望的数据为根据COL_ID值相同分成N列如下所示:ABC代表234
ROW_NUM A B C
4 刘家峡水电厂 刘家1 刘家2
5 刘家3 刘家4 刘家5
语句为:
select
row_num,
max( decode(col_id,'2',col_value) ) as a ,
max( decode(col_id,'3',col_value) ) as b ,
max( decode(col_id,'4',col_value) ) as c
from brpms.tb_rpt_data
group by row_num
分享到:
相关推荐
oracle行转列
NULL 博文链接:https://vernonchen163.iteye.com/blog/1902976
oracle行转列_列转行,实例加解析,自己测试没问题。免费分享了~
oracle 行转列的sql语句写法, 附带例子
用存储过程写的动态行转列。简单易用,查询速度高效
Oracle行转列
数据库查询中难免会遇到行列转换的情况,摘列一些较精典的解决方案
NULL 博文链接:https://13966692733-163-com.iteye.com/blog/1192434
行转列函数,对于学习sql查询的朋友们,可能会遇到这样的要求,此文档中做了详细记载,希望可以帮到你!
oracle数据库最详细的行转列资料,是官方文档的详细介绍版,中文的
oracle实现行转列功能,并使用逗号进行隔开拼接,成为一条数据.pdf
SQL行转列问题,有实例,根据具体实例讲解,清晰易懂。 希望对你有帮助!
关于oracle数据库如何行转列SQL语句。
许多情况下,由于程序中需要将行转为列展示,如果使用ORACLE那么这个资源适合你。
理解日常工作中常用到的多列分组, 如【统计不同部门、 不同职位的平均工资】和 行转列 包含例子 和 个人理解分析
通过oracle的管道技术实现行变列,或者复杂的SQL语句实现。 可以完成复杂逻辑在oracle中完成,减少对编程程序的依赖。
DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列