【Oracle行转列和列转行】教程文章相关的互联网学习教程文章

Oracle数据 行转列

cs.standard_id,cs.area_code,cs.exu_dept, regexp_substr(exu_dept, ‘[^,]+‘, 1, level) as dept_id from ca_stand_exu_dept csconnect by id = prior id and instr(exu_dept||‘,‘, ‘,‘, 1, level) > 0 and prior dbms_random.value is not null; Oracle数据 行转列标签:regex pre standard level str sel val 记录 bst 本文系统来源:http://www.cnblogs.com/wt-vip/p/6004605.html

Oracle根据【日期】组,其他条件根据PIVOT行转列。使每个日期条件关联的其他数据只有一行。

OPER_TIME,MICROPAY,REFUNDfrom(select trunc(oper_time) oper_time, class_name,sum(total_fee) total_feefrom wx_pay_detailgroup by trunc(oper_time),class_name)pivot(sum(total_fee) for class_name in (‘MicroPay‘as "MICROPAY",‘Refund‘ as "REFUND"))order by oper_time↑SQL,转换后列名 在FOR...IN 中AS 想要的 “名称”Oracle根据【日期】组,其他条件根据PIVOT行转列。使每个日期条件关联的其他数据只有一行。标签...

oracle 存储过程-动态行转列,解决。【代码】

create or replace package pro_test asTYPE out_cursor IS REF CURSOR; procedure Alarm_ContentsByTime(p_StartTime varchar2, ----开始时间p_EndTime varchar2, ----结束时间io_cursor in OUT out_cursor);end pro_test;包体create or replace package body pro_test isprocedure Alarm_ContentsByTime(p_StartTime varchar2, ----开始时间p_EndTime varchar2, ----结束时间io_cursor in OUT out_cursor) ...

oracle行转列和列转行(pivot 和 unpivot 函数,wm_concat函数 )

create table demo(id int,name varchar(20),nums int); ---- 创建表insert into demo values(1, ‘苹果‘, 1000);insert into demo values(2, ‘苹果‘, 2000);insert into demo values(3, ‘苹果‘, 4000);insert into demo values(4, ‘橘子‘, 5000);insert into demo values(5, ‘橘子‘, 3000);insert into demo values(6, ‘葡萄‘, 3500);insert into demo values(7, ‘芒果‘, 4200);insert into demo values(8, ‘芒果‘...

oracle 使用pivot 函数进行批量数据的动态行转列

P_FXJG ASv_LM VARCHAR2(2000);vs_sql varchar2(6000); vs_sql1 varchar2(6000); BEGINvs_sql1 := ‘INSERT INTO LS_TEMP select dbms_lob.substr(wm_concat(distinct(sf))) from B_CLB a ‘;execute immediate vs_sql1;SELECT SFBM INTO V_LM FROM LS_TEMP; vs_sql := ‘create or replace view V_FXJG as select * from (select a.YH, a.MC, a.LX "BZ", a.SF, a.JG from B_CLB a ) pivot(sum(JG) ...

oracle行转列实现【代码】【图】

table TEST_TABLE( T1 VARCHAR2(10),--姓名 T2 VARCHAR2(10),--科目 T3 VARCHAR2(10)--成绩 ) 2.插入测试数据insert into test_table (T1, T2, T3) values (‘张三‘, ‘语文‘, ‘88‘);insert into test_table (T1, T2, T3) values (‘张三‘, ‘数学‘, ‘99‘);insert into test_table (T1, T2, T3) values (‘张三‘, ‘英语‘, ‘100‘);insert into test_table (T1, T2, T3) values (‘李四‘, ‘语文‘, ‘79‘);insert in...

oracle的 listagg() WITHIN GROUP () 行转列函数的使用

1.使用条件查询 查询部门为20的员工列表 -- 查询部门为20的员工列表 SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO = ‘20‘ ; 效果:2.使用 listagg() WITHIN GROUP () 将多行合并成一行(比较常用) SELECT T .DEPTNO, listagg (T .ENAME, ‘,‘) WITHIN GROUP (ORDER BY T .ENAME) names FROM SCOTT.EMP T WHERE T .DEPTNO = ‘20‘ GROUP BY T .DEPTNO ...

oracle行转列/列转行/字符串拆分 测试

--列转行 --示例1select * from (select o.sname, count(1) dataNum from t_Olm_Onlinemondata d join t_Aaa_ou o on o.ou_id = d.company_id where d.mon_time > to_date(‘2019-11-01 00:00:00‘, ‘yyyy-mm-dd hh24:mi:ss‘) group by o.sname ) pivot( sum(dataNum) for sname in(‘石家庄炼化‘,‘燕山石化‘,‘安庆石化‘,‘天津石化‘,‘河南油田‘,‘湖北化肥‘,‘扬子石化‘,‘金陵石化‘,‘茂名石化‘ ))--示例2create...

oracle 行转列,用特殊符号拼接【代码】

第一种 函数 wm_content(‘待转列名称‘) 11g 往后,不推荐使用 实例 多表关联时可以使用 (SELECT wm_concat(nvl(B1.OPERA_CODE,‘a‘)) AS OPERA_CODE FROM OPERATION_NAME B1 WHERE T1.OPERA_REQ_NO=B1.OPERA_REQ_NO) AS SURGERY_OPER_CODE第二种 实例 WITH TEMP AS(SELECT ‘CHINA‘ NATION, ‘GUANGZHOU‘ CITYFROM DUALUNION ALLSELECT ‘CHINA‘ NATION, ‘SHANGHAI‘ CITYFROM DUALUNION ALLSELECT ‘CHINA‘ NATION, ‘BEI...

oracle多列转成一列(列转行)、行转列

1. 多列转成一列(列转行) -- 6列转成两列(列转行) 这就是最常见的列转行,主要原理是利用SQL里面的union with temp as (select a.iid_sn, a.product_name, a.sales_figures, a.selling_cost, a.pretax_profit, a.closing_inventory from is_import_detail a,1.多列转成一列(列转行)--6列转成两列(列转行) 这就是最常见的列转行,主要原理是利用SQL里面的union with temp as(selecta.iid_sn,a.product_name,a.sales_figures,a.selli...

Oracle—decode函数行转列

文章说明:根据成绩表,对每个学生的成绩数据进项行转列操作,最后每行显示每个学生的各科成绩。 以下是行转列的各个步骤操作。 1、创建学生信息,课程,成绩三张表 CREATE TABLE TB_STUDENT( STUDENTID VARCHAR2(10) PRIMARY KEY, STUNAME VARCHAR2(50), SE文章说明:根据成绩表,对每个学生的成绩数据进项行转列操作,最后每行显示每个学生的各科成绩。 以下是行转列的各个步骤操作。1、创建学生信息,课程,成绩三张表CREATE TA...

oracle中decode的使用和oracle中的行转列

decode其实就是if-else,如:decode(ybc,null,0,ybc),,这个意味着如果ybc列==null,则函数返回0,否则返回ybc的。 再如,decode(变量,条件1,1,条件2,2),这个就意味着是:if-elsif,如果是decode(变量,条件1,1,条件2,2,3),这个则是if-elsif-elsedecode其实就是if-else,如:decode(ybc,null,0,ybc),,这个意味着如果ybc列==null,则函数返回0,否则返回ybc的值。 再如,decode(变量,条件1,值1,条件2,值2),这个就意...

Oracle行转列简单示例

在开发的过程中,有时候需要将行数据转换为列数据,这种情况可用Decode函数和分组来实现 --构造数据集with A as (select 阿诗玛 Name, 语文 Class, 86 Score from dual union all select 阿诗玛, 数学, 95 from dual union all select 阿诗玛,在开发的过程中,有时候需要将行数据转换为列数据,这种情况可用Decode函数和分组来实现 --构造数据集 with A as(select 阿诗玛 Name, 语文 Class, 86 Scorefrom dualunion allselect 阿诗...

Oracle中用一条Sql实现任意的行转列拼接多行拼接

表结构和数据如下(表名Test): NO VALUE NAME 1 a 测试1 1 b 测试2 1 c 测试3 1 d 测试4 2 e 测试5 4 f 测试6 4 g 测试7 Sql语句: select No, ltrim(max(sys_connect_by_path(Value, ;)), ;) as Value, ltrim(max(sys_connect_by_path(Name, ;)), 表结构和数据如下(表名Test): NO VALUE NAME 1 a 测试1 1 b 测试2 1 c 测试3 1 d 测试4 2 e 测试5 4 f ...

Oracle行转列两种方法【图】

1.新建一个名为TEST表 2.向TEST表中添加数据 INSERT INTO TEST(STUDENT,COURSE,SCORE) select 张三,语文,78 from dual union select 张三,数学,87 from dual union select 张三,英语,82 from dual union select 张三,物理,90 from dual unio 1.新建一个名为TEST表 2.向TEST表中添加数据 INSERT INTO TEST(STUDENT,COURSE,SCORE) select 张三,语文,78 from dual union select 张三,数学,87 from dual union select 张三,英语,82 ...