国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

oracle 字符串轉成行

2020-07-26 14:34:48
字體:
來源:轉載
供稿:網友
SELECT   SUBSTR (T.RPT_ID,
                INSTR (T.RPT_ID,',',1,C.LV)+ 1,
                INSTR (T.RPT_ID,',',1,C.LV + 1)- (INSTR (T.RPT_ID,',',1,C.LV)+ 1))
            AS RPT_ID
  FROM   (SELECT ',' || '85,86,87' || ',' RPT_ID,
                 LENGTH ('85,86,87' || ',') - NVL (LENGTH (REPLACE ('85,86', ',')), 0) CNT
            FROM DUAL) t,
         (SELECT LEVEL lv
            FROM DUAL
          CONNECT BY LEVEL <= LENGTH('85,86,87' || ',') - NVL(LENGTH(REPLACE('85,86,87', ',')), 0)) c
 WHERE   T.cnt >= c.lv
說明:CNT表示串里面有多少字符。
當是字符串是表中的字段時,取level<=最大個數
如:
1).取最大個數
SELECT MAX(LENGTH(RPT_ID || ',') -
            NVL(LENGTH(REPLACE(RPT_ID, ',')), 0)) INTO v_c
    FROM DIM_AUDIT_TABLE@sjmh_inter;
2).l轉成行
SELECT T.T_NAME,
                       T.T_NAME_COMM,
                       T.T_COLUMN,
                       T.T_COLUMN_COMM,
                       t.COMMENT_NL,
                       t.COMMENT_NL_TIME,
                       t.SEQ_USER_ID,
                       SUBSTR(T.RPT_ID,
                              INSTR(T.RPT_ID, '','', 1, C.LV) + 1,
                              INSTR(T.RPT_ID, '','', 1, C.LV + 1) -
                              (INSTR(T.RPT_ID, '','', 1, C.LV) + 1)) AS RPT_ID
                  FROM (SELECT A.T_NAME,
                               A.T_NAME_COMM,
                               A.T_COLUMN,
                               A.T_COLUMN_COMM,
                               a.COMMENT_NL,
                               a.COMMENT_NL_TIME,
                               a.SEQ_USER_ID,
                               '','' || A.RPT_ID || '','' RPT_ID,
                               LENGTH(A.RPT_ID || '','') -
                               NVL(LENGTH(REPLACE(A.RPT_ID, '','')), 0) CNT
                          FROM DIM_AUDIT_TABLE@sjmh_inter A
                         WHERE a.COMMENT_NL is not null) T,
                       (SELECT LEVEL LV FROM DUAL CONNECT BY LEVEL <= '||v_c||') C
                 WHERE C.LV <= T.CNT;

注:如果是上面代碼是遠程的代碼,(SELECT LEVEL LV FROM DUAL CONNECT BY LEVEL <= '||v_c||') C,不要用dual表,可以改用all_objects或user_objects, 要不然能查詢,但是把查詢出來的SQL插入到某個表時,只能插入一行

上一篇:Oracle10g 安裝方法

下一篇:oracle 集合

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 磐石市| 宜春市| 文安县| 安达市| 涟源市| 莲花县| 白朗县| 诏安县| 大渡口区| 新昌县| 富川| 阜城县| 辉南县| 东乡县| 平舆县| 清新县| 株洲县| 乐业县| 沂南县| 卢湾区| 绥中县| 金平| 田阳县| 沁水县| 祁门县| 吐鲁番市| 凤翔县| 武义县| 江西省| 镇巴县| 苏尼特左旗| 庐江县| 盐城市| 吴川市| 泸州市| 九台市| 泾阳县| 新和县| 红安县| 绥芬河市| 西青区|