zoukankan      html  css  js  c++  java
  • oracle一列中的数据有多个*用逗号隔开,我如何分别取出来?

    ID      NUMBER
    1 137xxxx,138xxxx
    取出来成
    ID NUMBER
    1 137xxxx
    1 138xxxx

    create table test
    (id int,
    phone varchar2(200));
    insert into test values (1,'13811111111,13311111111,13900000000');
    insert into test values (2,'15811111111,15911111111,18800000000');

    第一种方式
    select id,c from
    (with as (select id,phone c from test)
    select id,substr(t.ca,instr(t.ca, ',', 1, c.lv) + 1,instr(t.ca, ',', 1, c.lv + 1) - (instr(t.ca, ',', 1, c.lv) + 1)) AS c
    from (select id,',' || c || ',' AS ca,length(c || ',') - nvl(length(REPLACE(c, ',')),0) AS cnt FROM t) t,
    (select LEVEL lv from dual CONNECT BY LEVEL <= 100) c where c.lv <= t.cnt) 
    order by id
     
    SELECT id,
           regexp_substr(phone, '[^,]+', 1, LEVEL) mobile
    FROM   test
    CONNECT BY PRIOR id = id
        AND    PRIOR dbms_random.VALUE IS NOT NULL
        AND    LEVEL <= length(phone) - length(REPLACE(phone, ',')) + 1
  • 相关阅读:
    pycharm的常规使用
    python-引用/模块
    6-4 函数
    5-21文件的操作
    5-21python数据类型
    python-基础
    5-7接口测试工具之jmeter的使用
    接口测试基础
    把命令结果作为变量赋值
    shell变量子串
  • 原文地址:https://www.cnblogs.com/myjoan/p/4139348.html
Copyright © 2011-2022 走看看