第二种方法 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中实现列转行及行转列通用存储过程的具体方法,特别是针对Microsoft SQL Server版本的应用场景。 ### 标题解析:SQL列转行及行转列的通用存储过程 该标题...
DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列
Access作为一款流行的桌面级数据库管理系统,提供了丰富的数据操作功能,其中包括“行转列”和“列转行”的操作,这对于数据展示和分析有着极大的便利性。在本文中,我们将深入探讨Access中的这种转换方法及其实际...
sql 行转列 与列转行,oracle ,msssql等,详细数据库操作方法,各种例子,欢迎大家学习。、~
### SQL语句实现表的行列转换,行转列,列转行 在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。其中,“行列转换”就是一种非常实用的功能,它可以帮助我们将表中的行数据转换为列数据,...
标题“mysql-行转列、列转行”涉及到的是MySQL中的两种主要转换技巧: 1. **行转列(Pivot)**: 行转列通常用于将多行数据转换为单行的多个列。在MySQL中,没有内置的PIVOT函数,但可以通过使用`CASE`语句配合`...
在数据处理过程中,有时我们需要将数据从行格式转换为列格式,或者反之,这被称为“行转列”或“列转行”。在Kettle中实现这一功能,可以通过“Row to Column”或“Column to Row”步骤来完成。 在本文中,我们将...
精典的SQL语句,行转列,列转行的语句 本文共分六个部分,分别讨论精典的SQL语句,行转列,列转行的语句,行列转换、取得数据表的所有列名、更改用户密码、判断表的哪些字段不允许为空、找到含有相同字段的表六个...
MySQL 提供了两种转换数据布局的方法:行转列(Pivot)和列转行(Unpivot),这在处理复杂的数据汇总和展示时非常有用。本文将深入探讨这两种转换方法,并提供具体的 SQL 语句示例,以及创建示例表结构的 SQL 代码。...
SqlServer如何进行行转列和列转行方法
在SQL Server中,"行转列"和"列名转行"是数据处理中的常见操作,主要用于优化数据的展示和分析。这两种操作可以利用SQL Server的特定功能来实现,如PIVOT和UNPIVOT操作,或者通过CASE语句和自连接等方法。下面将详细...
MySQL 行转列、列转行、行列汇总、合并显示 MySQL 行转列是一种常用的数据处理操作,用于将同一列下的不同内容的几行数据转换成几列显示。例如,我们有一个成绩表 tb_score,其中包含 userid、subject 和 score 三...
在c#后台实现 行转列的显示功能,这样就是可以不借助sql数据库的查询分析器功能也可以实现行转列功能的实现了
本篇将深入探讨如何利用LINQ进行动态查询以及如何实现行转列,这对于构建灵活的数据分析和展示功能至关重要。 首先,让我们来理解什么是LINQ动态查询。在传统的LINQ查询中,我们通常使用lambda表达式或方法链来定义...
oracle行转列,列转行的例子
C#终极版DataTable集行转列,完全不用任何修改,可直接使用!
SQL行专列列转行的存储过程 很实用的 SQL行专列列转行的存储过程 很实用的
在SQL数据库操作中,"行转列"是一种常见的数据转换需求,它将表格中的多行数据转换为单列显示,通常用于数据汇总和分析。在本案例中,我们主要探讨如何使用SQL语句,尤其是存储过程,来实现动态的行转列功能。这在...