第二种方法 select s.c_empid,sum(decode(dp.c_name,'基本工资一基础工资',nvl(s.c_value, 0))) as "基础工资", sum(decode(dp.c_name,'基本工资一加班费',nvl(s.c_value, 0))) as "加班费", sum(decode(dp.c_name,'基本工资一岗位月度工资',nvl(s.c_value, 0))) as "岗位月度工资" from tb_cnb_otherpays_component dp left join (select C_OID,C_COMPENTID,C_GROUPID,C_YEAR,C_MONTH,C_VALUE,C_OPERATORID,C_OPERATETIME,C_EMPID,C_STATUS from tb_cnb_otherpays_details ds where ds.c_year = 2014 AND DS.C_GROUPID = 156075017 AND DS.C_MONTH = 5 and ds.c_empid in(21279974,21278721) ) s on dp.c_oid = s.c_compentid group by s.c_empid
需要把上图的数据结构变成下图的表结构
select c_empid, sum(CASE WHEN dp.c_name='基本工资一岗位月度工资' THEN nvl(s.c_value, 0) END)as "岗位月度工资", sum(CASE WHEN dp.c_name='基本工资一加班费' THEN nvl(s.c_value, 0) END)as "加班费", sum(CASE WHEN dp.c_name='基本工资一基础工资' THEN nvl(s.c_value, 0) END)as "基础工资" from tb_cnb_otherpays_component dp left join (select C_OID,C_COMPENTID,C_GROUPID,C_YEAR,C_MONTH,C_VALUE,C_OPERATORID,C_OPERATETIME,C_EMPID,C_STATUS from tb_cnb_otherpays_details ds where ds.c_year = 2014 AND DS.C_GROUPID = 156075017 AND DS.C_MONTH = 5 and ds.c_empid in(21279974) ) s on dp.c_oid = s.c_compentid group by s.c_empid; 第三种 把多行转成一列
select id, vnum, to_char(wmsys.wm_concat(vname)) c from tab_test group by id,vnum; 第四种 把一列转成多行
with a as (select '/ABC/AA/AD/ABD/JI/CC/ALSKD/ALDKDJ' id from dual) select regexp_substr(id,'[^/]+',1,rownum) id from a connect by rownum <= length(regexp_replace(id,'[^/]+'))
相关推荐
sql列转行以及行转列的通用存储过程!mssqlserver版本!
DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列
Sql语句实现表的行列转换,行转列,列转行
sql 行转列 与列转行,oracle ,msssql等,详细数据库操作方法,各种例子,欢迎大家学习。、~
精典的SQL语句。行转列,列转行的语句精典的SQL语句。行转列,列转行的语句
mysql行转列(将同一列下的不同内容的几行数据,转换成几列显示)、列转行、行列汇总、合并显示
SqlServer如何进行行转列和列转行方法
在c#后台实现 行转列的显示功能,这样就是可以不借助sql数据库的查询分析器功能也可以实现行转列功能的实现了
sql server 实现行转列、列名转行
sql行转列_列转行问题.
oracle行转列_列转行,实例加解析,自己测试没问题。免费分享了~
kettle etl 行转列 ;讲解清楚,用列经过测试能通俗易懂讲解这个知识点
SQL行专列列转行的存储过程 很实用的 SQL行专列列转行的存储过程 很实用的
sqlserver 实现 行转列 split 分割的函数,具体使用方法写有在文件里。
access行转列,可以行转列和列转行,非常实用。
长数据宽数据转换,pandas 一列拆分多列,pandas pivot——table使用,pandas.melt 使用
列转行行转列
有case when方式和2005之后的内置pivot和unpivot方法来实现,行列互转,可以分为静态互转,动态互转。
Mysql 行转列,列转行 SQL语句和示例表结构SQL Mysql 行转列,列转行 SQL语句和示例表结构SQL
SQL行转列列转行.txt