`
625454856a
  • 浏览: 12426 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

行转列,列转行

 
阅读更多
第二种方法
  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,'[^/]+'))

 

 

  • 大小: 58.2 KB
  • 大小: 40.7 KB
  • 大小: 38.3 KB
  • 大小: 4.5 KB
分享到:
评论

相关推荐

    sql列转行以及行转列的通用存储过程

    根据提供的标题、描述、标签及部分内容,本文将详细介绍SQL中实现列转行及行转列通用存储过程的具体方法,特别是针对Microsoft SQL Server版本的应用场景。 ### 标题解析:SQL列转行及行转列的通用存储过程 该标题...

    DB2 SQL 实现行转列,列转行

    DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列

    access行转列示例

    Access作为一款流行的桌面级数据库管理系统,提供了丰富的数据操作功能,其中包括“行转列”和“列转行”的操作,这对于数据展示和分析有着极大的便利性。在本文中,我们将深入探讨Access中的这种转换方法及其实际...

    sql行转列,与列转行

    sql 行转列 与列转行,oracle ,msssql等,详细数据库操作方法,各种例子,欢迎大家学习。、~

    Sql语句实现表的行列转换,行转列,列转行

    ### SQL语句实现表的行列转换,行转列,列转行 在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。其中,“行列转换”就是一种非常实用的功能,它可以帮助我们将表中的行数据转换为列数据,...

    mysql-行转列、列转行

    标题“mysql-行转列、列转行”涉及到的是MySQL中的两种主要转换技巧: 1. **行转列(Pivot)**: 行转列通常用于将多行数据转换为单行的多个列。在MySQL中,没有内置的PIVOT函数,但可以通过使用`CASE`语句配合`...

    kettle行转列详解

    在数据处理过程中,有时我们需要将数据从行格式转换为列格式,或者反之,这被称为“行转列”或“列转行”。在Kettle中实现这一功能,可以通过“Row to Column”或“Column to Row”步骤来完成。 在本文中,我们将...

    精典的SQL语句。行转列,列转行的语句

    精典的SQL语句,行转列,列转行的语句 本文共分六个部分,分别讨论精典的SQL语句,行转列,列转行的语句,行列转换、取得数据表的所有列名、更改用户密码、判断表的哪些字段不允许为空、找到含有相同字段的表六个...

    Mysql 行转列,列转行 SQL语句和示例表结构SQL

    MySQL 提供了两种转换数据布局的方法:行转列(Pivot)和列转行(Unpivot),这在处理复杂的数据汇总和展示时非常有用。本文将深入探讨这两种转换方法,并提供具体的 SQL 语句示例,以及创建示例表结构的 SQL 代码。...

    SqlServer行转列和列转行

    SqlServer如何进行行转列和列转行方法

    行转列、列名转行

    在SQL Server中,"行转列"和"列名转行"是数据处理中的常见操作,主要用于优化数据的展示和分析。这两种操作可以利用SQL Server的特定功能来实现,如PIVOT和UNPIVOT操作,或者通过CASE语句和自连接等方法。下面将详细...

    mysql行转列(将同一列下的不同内容的几行数据,转换成几列显示)、列转行、行列汇总、合并显示

    MySQL 行转列、列转行、行列汇总、合并显示 MySQL 行转列是一种常用的数据处理操作,用于将同一列下的不同内容的几行数据转换成几列显示。例如,我们有一个成绩表 tb_score,其中包含 userid、subject 和 score 三...

    C#行转列的实现

    在c#后台实现 行转列的显示功能,这样就是可以不借助sql数据库的查询分析器功能也可以实现行转列功能的实现了

    Linq动态查询、行转列

    本篇将深入探讨如何利用LINQ进行动态查询以及如何实现行转列,这对于构建灵活的数据分析和展示功能至关重要。 首先,让我们来理解什么是LINQ动态查询。在传统的LINQ查询中,我们通常使用lambda表达式或方法链来定义...

    oracle行转列,列转行的例子

    oracle行转列,列转行的例子

    C#终极版DataTable集行转列

    C#终极版DataTable集行转列,完全不用任何修改,可直接使用!

    SQL行专列列转行存储过程

    SQL行专列列转行的存储过程 很实用的 SQL行专列列转行的存储过程 很实用的

    sql动态行转列 存储过程

    在SQL数据库操作中,"行转列"是一种常见的数据转换需求,它将表格中的多行数据转换为单列显示,通常用于数据汇总和分析。在本案例中,我们主要探讨如何使用SQL语句,尤其是存储过程,来实现动态的行转列功能。这在...

Global site tag (gtag.js) - Google Analytics