午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Oracle根據(jù)逗號(hào)拆分字段內(nèi)容轉(zhuǎn)成多行的函數(shù)說(shuō)明

瀏覽:409日期:2023-05-30 16:13:59
目錄
  • 使用場(chǎng)景
  • 1.業(yè)務(wù)表A
  • 2.實(shí)現(xiàn)拆分SQL
  • 3.REGEXP_SUBSTR函數(shù)
    • 1)參數(shù)說(shuō)明
    • 2)案例
  • 4.REGEXP_REPLACE函數(shù)
    • 1)參數(shù)說(shuō)明
  • 5.CONNECT BY函數(shù)
    • 1)基本語(yǔ)法
    • 2)案例
  • 6.LENGTH函數(shù)
    • 1)參數(shù)說(shuō)明
    • 2)案例
  • 總結(jié)

    使用場(chǎng)景

    業(yè)務(wù)表A中一個(gè)字段存放用逗號(hào)分割的多個(gè)業(yè)務(wù)單元,現(xiàn)在需要將數(shù)據(jù)轉(zhuǎn)成一個(gè)業(yè)務(wù)單元對(duì)應(yīng)一個(gè)數(shù)據(jù)。

    1.業(yè)務(wù)表A

    SELECT * FROM app_template_dept t WHERE t.evaluate_index_code ="3330326";

    2.實(shí)現(xiàn)拆分SQL

    SELECT DISTINCT A.*, REGEXP_SUBSTR(A.DEPT_CODE, "[^,]+", 1, Level, "i")  FROM (SELECT *  FROM APP_TEMPLATE_DEPT T WHERE T.EVALUATE_INDEX_CODE = "3330326") ACONNECT BY Level<= LENGTH(A.DEPT_CODE) -   LENGTH(REGEXP_REPLACE(A.DEPT_CODE, ",", "")) + 1;

    3.REGEXP_SUBSTR函數(shù)

    對(duì)字符串進(jìn)行正則分割,取特定字符的函數(shù)。

    1)參數(shù)說(shuō)明

    REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)

    • String: 需要進(jìn)行正則處理的字符串
    • pattern:進(jìn)行匹配的正則表達(dá)式
    • position:起始位置,從第幾個(gè)字符開(kāi)始正則表達(dá)式匹配(默認(rèn)為1)
      注意:字符串最初的位置是1而不是0
    • occurrence:標(biāo)識(shí)第幾個(gè)匹配組,默認(rèn)為1
      注意:分割后最初的字符串會(huì)按分割的順序排列成組
    • modifier:模式('i’不區(qū)分大小寫(xiě)進(jìn)行檢索;‘c’區(qū)分大小寫(xiě)進(jìn)行檢索。默認(rèn)為’c’。)
      注意:針對(duì)的是正則表達(dá)式里字符大小寫(xiě)的匹配

    2)案例

    /*從第一個(gè)字符開(kāi)始按照字符"A"(區(qū)分大小寫(xiě))分割字符串"1a2A33a",取第二個(gè)分割出來(lái)的數(shù)據(jù)*/SELECT REGEXP_SUBSTR("1a2A33a","[^A]+",1,2,"c") AS STR FROM DUAL; --結(jié)果:33aSELECT REGEXP_SUBSTR("1a2A33a","[^A]+",1,2,"i") AS STR FROM DUAL; --結(jié)果:2/*把要輸出來(lái)的第幾個(gè)子串,通過(guò)一個(gè)變量ROWNUM轉(zhuǎn)換成輸出多少個(gè)子串。level<=5代表的是輸出5個(gè),沒(méi)有的為null*/SELECT REGEXP_SUBSTR("1a2A33a","[^A]+",1,Level,"i") AS STR FROM DUAL CONNECT BY LEVEL<=5; --結(jié)果:1、2、33、null、null

    4.REGEXP_REPLACE函數(shù)

    通過(guò)正則表達(dá)式來(lái)進(jìn)行匹配替換。

    1)參數(shù)說(shuō)明

    REGEXP_REPLACE(VARCHAR str, VARCHAR pattern, VARCHAR replacement)

    str:指定的字符串pattern:被替換的字符串replacement:用于替換的字符串 2)案例

    SELECT REGEXP_REPLACE("1a2A33a","A","") AS STR FROM DUAL; --結(jié)果:1a233a

    5.CONNECT BY函數(shù)

    一般用來(lái)查找存在父子關(guān)系的數(shù)據(jù),也就是樹(shù)形結(jié)構(gòu)的數(shù)據(jù)。

    1)基本語(yǔ)法

    select ... fromwhere ... --過(guò)濾條件,用于對(duì)返回的所有記錄進(jìn)行過(guò)濾。[start with ...] --查詢結(jié)果重起始根結(jié)點(diǎn)的限定條件。connect by [prior] id=parentid--連接條件; 
    • start with:用來(lái)限制第一層的數(shù)據(jù),或者叫根節(jié)點(diǎn)數(shù)據(jù),以這部分?jǐn)?shù)據(jù)為基礎(chǔ)來(lái)查找第二層數(shù)據(jù),然后以第二層數(shù)據(jù)查找第三層數(shù)據(jù)以此類推。
    • connect by [prior] id=parentid :這部分是用來(lái)指明oracle在查找數(shù)據(jù)時(shí)以怎樣的一種關(guān)系去查找,比如說(shuō)查找第二層的數(shù)據(jù)時(shí)用第一層數(shù)據(jù)的id去跟表里面記錄的parentid字段進(jìn)行匹配,如果這個(gè)條件成立那么查找出來(lái)的數(shù)據(jù)就是第二層數(shù)據(jù),同理查找第三層第四層…等等都是按這樣去匹配。

    也可以寫(xiě)成connect by id= [prior] parentid,這種用法就表示從下往上查找數(shù)據(jù),可以理解為從葉子節(jié)點(diǎn)往上查找父級(jí)幾點(diǎn),用第一層數(shù)據(jù)的parentid去跟表記錄里面的id進(jìn)行匹配,匹配成功那么查找出來(lái)的就是第二層數(shù)據(jù);上面的那種就是從父級(jí)節(jié)點(diǎn)往下查找葉子節(jié)點(diǎn)。

    2)案例

    select rownum from dual connect by rownum<=10;

    結(jié)果

    select * from table_tempstart with id = "001001"connect by prior id = parent_id;

    table_temp表中數(shù)據(jù)

    結(jié)果

    6.LENGTH函數(shù)

    返回字符串表達(dá)式中字符數(shù)的字符串函數(shù)。

    1)參數(shù)說(shuō)明

    LENGTH(string-expression)

    • string-expression:字符串表達(dá)式,可以是列名、字符串文字或另一個(gè)標(biāo)量函數(shù)的結(jié)果,其中基礎(chǔ)數(shù)據(jù)類型可以表示為任何字符類型(例如 CHAR 或 VARCHAR)

    2)案例

    SELECT LENGTH("1a2A33a") AS STR FROM DUAL; --結(jié)果:7

    總結(jié)

    到此這篇關(guān)于Oracle根據(jù)逗號(hào)拆分字段內(nèi)容轉(zhuǎn)成多行的文章就介紹到這了,更多相關(guān)Oracle逗號(hào)拆分字段內(nèi)容內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

    標(biāo)簽: Oracle
    主站蜘蛛池模板: 黄色一级大片在线免费观看 | 成人免费视频国产 | 欧州一级片 | 色男人的天堂 | 超碰一区二区三区 | 午夜特片网 | 香蕉精品视频在线观看 | 天天干天天干天天干 | 亚洲欧洲av| 成人毛片在线观看 | 欧美一区二区日韩 | 日韩一级黄色 | 亚洲欧美国产一区二区三区 | 成人久久久久 | 日本精品999 | 大地资源在线资源 | 国产精品福利网站 | 日本三级视频在线观看 | 成人a网站 | 中文字幕精品久久 | 快灬快灬一下爽蜜桃在线观看 | 97狠狠操 | 国产一级在线播放 | 在线免费a视频 | 黄色免费看网站 | 亚洲欧美在线观看视频 | 亚洲欧洲日本国产 | 一级大黄色片 | 99黄色| 色偷偷免费视频 | 国产麻豆91 | 精品999视频 | 色视频在线观看 | 国产精品久久久久久久免费看 | 国产精品成人自拍 | 啪啪影音 | 香蕉视频网站 | 久久综合五月天 | 中文字幕久久久久 | 麻豆一区二区三区在线观看 | 久久精品免费观看 |