易截截图软件、单文件、免安装、纯绿色、仅160KB

老问题:Oracle行转列(字符串拆分)

现有以下数据:
ID Name
1 Jack,Tom,Ben
2 Mary,Simth,Tony,Jay


转换为:
ID Name
1 Jack
1 Tom
1 Ben
2 Mary
2 Simth
2 Tony
2 Jay

要求使用SQL查询完成,由于条件限制,不能使用函数,过程,游标之类的方法。
请大虾们帮忙吧!
SQL code:
with tt as (select 1 id,'Jack,Tom,Ben' Name from dual
union all select 2,'Mary,Smith,Tony,Jay' from dual)

select a.id,
substr(','||a.name||',',instr(','||a.name,',',1,b.rn)+1,
instr(a.name||',',',',1,b.rn)-instr(','||a.name,',',1,b.rn))name
from tt a,
(select rownum rn from dual
connect by rownum<10)b
where length(a.name)-length(replace(a.name,','))+1>=b.rn
order by id,b.rn

这个10要按你的实际情况修改
不小于原表中name里项数的最大值


with tt as ( 
select 1 id,'Jack,Tom,Ben' Name from dual 
union all select 2,'Mary,Smith,Tony,Jay' from dual 

select substr(name, 
  decode(rownum, 1, 1, instr(name, ',', 1, rownum - 1)+1), 
  instr(name, ',', 1, rownum) - 
  decode(rownum, 1, 1, instr(name, ',', 1, rownum - 1)+1)) 
  from (select wmsys.wm_concat(name)||',' name from tt) a 
connect by rownum <= 5 and instr(name, ',', 1, rownu


相关问答:

PHP 连接Oracle 出错

<?php
  getenv("ORACLE_HOME");
  $conn=ocilogon("test","test","test_db");
  if($conn)  
  echo success;  
&nb ......

借水源人气!oracle job问题!在线等

我写的一个Job
declare
  job1 integer;
begin
  dbms_job.submit(job1,
    'Sale_FinanceUseFee(4,null,null,null);',
    TRUNC(SYSDATE)+1.103, ......

imp 导入 oracle 问题

导出、导入都是 oracle 10g 。

在导入过程中出现如下情况:

IMP-00017: 由于 ORACLE 错误 6550, 以下语句失败:
"DECLARE  SREC DBMS_STATS.STATREC; BEGIN SREC.MINVAL := '4E014E50 ......

关于oracle 10g的EM启动问题

oracle 10g安装完毕后默认会以网页形式启动EM,但我关闭后就没在开始菜单里找到相应的网页模式启动EM和JAVA程序启动的EM选项,请问这是怎么回事?
em是个服务,

安装好以后应该在你的服务列表里找到类似Orac ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号