oracle 列行转换】的更多相关文章

1.列转换  1:每个字母转成一行 SELECT SUBSTR(A.COLUMN1, LEV, 1) COLUMN1FROM (     SELECT 'AABDC' COLUMN1 FROM DUAL) A,(SELECT LEVEL LEV FROM DUAL CONNECT BY LEVEL<=100) BWHERE LEV <= LENGTH(A.COLUMN1); 2.通过“,”通过列转行 SELECT COLUMN1, REGEXP_SUBSTR(A.COLUMN2 ,'[^,]+…
 oracle 多行转多列查询  ---create table Fruit(id int,name varchar(20), Q1 int, Q2 int, Q3 int, Q4 int);insert into Fruit values(1,'苹果',1000,2000,3300,5000);insert into Fruit values(2,'橘子',3000,3000,3200,1500);insert into Fruit values(3,'香蕉',2500,3500,2200,2…
在报表的开发当中,难免会遇到行转列的问题. 以Oracle中scott的emp为例,统计各职位的人员在各部门的人数分布情况,就可以用“行转列”: scott的emp的原始数据为: EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH CLERK 7902 12/17/1980 800.00 20 7499 ALLEN SALESMAN 7698 2/20/1981 1600.00 300.00 30 7521 WARD SALESMAN…
Oracle 多行转多列,列值转为列名   前段时间做调查问卷,客户创建自定义问卷内容,包括题目和选项内容; 之后需要到处问卷明细,,,,麻烦来咯 于是到网上到处搜索,没有直接结果;于是又找各种相似的,,终于功夫不负有心人 然后最终自己写出来了,decode才是核心 废话不多说,看图 需求示例图表: 存储过程,嘿嘿: 1 create or replace procedure NAG_QUESTIONERSULT_EXP( 2 V_QID in number, 3 C_Title out sys…
Oracle字符串行拆分成列的三种方式 --muphy 开发过程中经常会遇到将前台多个值用逗号连接一同传递到后台查询,这个用逗号连接的字符串分隔的每个字符串分别对应Oracle数据库表的不同行. 如下一个表table_test的内容如下: name       value pa           5 pb           6 pc           8 需要查询分别与pa和pb相同的行,参数字符串为: pi_names=”pa,pb” 如何查询呢,有以下三种方式(根据执行计划分析,效率由…
今天我一个学弟问了一个面试题: 有表A,结构如下:A: p_ID p_Num s_id1 10 011 12 022 8 013 11 013 8 03其中:p_ID为产品ID,p_Num为产品库存量,s_id为仓库ID.请用SQL语句实现将上表中的数据合并,合并后的数据为:p_ID s1_id s2_id s3_id1 10 12 02 8 0 03 11 0 8其中:s1_id为仓库1的库存量,s2_id为仓库2的库存量,s3_id为仓库3的库存量.如果该产品在某仓库中无库存量,那么就是0代…
1.MySql和Oracle的日期转换 mysql中有2种日期格式DATE和TIME,oracle只有一种日期格式DATE. oracle> select to_char(sysdate,'yyyy-mm-dd') from dual; oracle> select to_char(sysdate,'hh24-mi-ss') from dual; mysql> select date_format(now(),'%Y-%m-%d'); mysql> select time_form…
今天正好遇到需要做这个功能,顺手搜了一下网络,把几种方法都列出来,方便以后参考. 1 什么是合并多行字符串(连接字符串)呢,例如: SQL> desc test; Name Type Nullable Default Comments ------- ------------ -------- ------- -------- COUNTRY VARCHAR2(20) Y CITY VARCHAR2(20) Y SQL> select * from test; COUNTRY CITY ---…
Oracle 11g行字段拼接WMSYS.WM_CONCAT问题Not A LOB 一.问题出现 项目中的某个查询需要将表中某个字段不重复地拼接起来,百度得到该函数WMSYS.WM_CONCAT(字段),以及listagg(字段,连接符)函数,前者只能使用逗号','连接,后者可以定制连接符. 但由于listagg不能直接在参数中使用distinct去重,因此采用WM_CONCAT函数. SQL格式如下: select t.id, t.pjname from (select A.id as id,…
在很多场合,我们会须要用到oracle列合并,oracle提供了一些方法用于把某列的多行数据合并成一行. 一.10G曾经使用WMSYS.WM_CONCAT   wmsys.wm_concat将字段的值用","来隔开.   select id,wm_concat(name) from tab_name group by id; 二.sys_connect_by_path   sys_connect_by_path(字段名, 2个字段之间的连接符号),这里的连接符号不要使用逗号.oracl…