最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2023年04月12日 10:41:35   作者:EstherLty  
在做系統(tǒng)時經(jīng)常會遇到在一個字段中,用逗號或其他符號分隔存儲多個信息,下面這篇文章主要給大家介紹了關(guān)于Oracle根據(jù)逗號拆分字段內(nèi)容轉(zhuǎn)成多行的函數(shù)說明,需要的朋友可以參考下

使用場景

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

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

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

2.實現(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') A
CONNECT BY Level<= LENGTH(A.DEPT_CODE) -
           LENGTH(REGEXP_REPLACE(A.DEPT_CODE, ',', '')) + 1;

3.REGEXP_SUBSTR函數(shù)

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

1)參數(shù)說明

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

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

2)案例

/*從第一個字符開始按照字符'A'(區(qū)分大小寫)分割字符串'1a2A33a',取第二個分割出來的數(shù)據(jù)*/
SELECT REGEXP_SUBSTR('1a2A33a','[^A]+',1,2,'c') AS STR FROM DUAL; --結(jié)果:33a

SELECT REGEXP_SUBSTR('1a2A33a','[^A]+',1,2,'i') AS STR FROM DUAL; --結(jié)果:2

/*把要輸出來的第幾個子串,通過一個變量ROWNUM轉(zhuǎn)換成輸出多少個子串。level<=5代表的是輸出5個,沒有的為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ù)

通過正則表達式來進行匹配替換。

1)參數(shù)說明

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ù)

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

1)基本語法

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

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

2)案例

select rownum from dual connect by rownum<=10;

結(jié)果

select * from table_temp
start with id = '001001'
connect by prior id = parent_id;

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

結(jié)果

6.LENGTH函數(shù)

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

1)參數(shù)說明

LENGTH(string-expression)

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

2)案例

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

總結(jié)

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

相關(guān)文章

  • Oracle merge合并更新函數(shù)實例詳解

    Oracle merge合并更新函數(shù)實例詳解

    這篇文章主要給大家介紹了關(guān)于Oracle merge合并更新函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • oracle數(shù)據(jù)庫被鎖定的解除方案

    oracle數(shù)據(jù)庫被鎖定的解除方案

    文章主要介紹了如何查詢和解除Oracle數(shù)據(jù)庫中被鎖定的表,通過執(zhí)行特定的SQL語句,可以獲取被鎖定表的相關(guān)信息,并通過指定會話ID和序列號來解除鎖定,同時,文章提醒執(zhí)行此操作時需要謹慎,確保了解其影響
    2024-11-11
  • Oracle如何設(shè)置表空間數(shù)據(jù)文件大小

    Oracle如何設(shè)置表空間數(shù)據(jù)文件大小

    這篇文章主要介紹了Oracle如何設(shè)置表空間數(shù)據(jù)文件大小,文中講解非常細致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Oracle 錯誤日志表及異常處理包詳解 附源碼

    Oracle 錯誤日志表及異常處理包詳解 附源碼

    這篇文章主要介紹了Oracle 錯誤日志表及異常處理包詳解 附源碼,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • ORACLE兩表關(guān)聯(lián)更新三種方式

    ORACLE兩表關(guān)聯(lián)更新三種方式

    這篇文章主要介紹了ORACLE兩表關(guān)聯(lián)更新三種方式,文章通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • [Oracle] dbms_metadata.get_ddl 的使用方法總結(jié)

    [Oracle] dbms_metadata.get_ddl 的使用方法總結(jié)

    以下是對Oracle中dbms_metadata.get_ddl的用法進行了詳細的分析介紹,需要的朋友參考下
    2013-07-07
  • 修改oracle數(shù)據(jù)庫用戶名及密碼的方法

    修改oracle數(shù)據(jù)庫用戶名及密碼的方法

    有時候我們可能不知道一個用戶的密碼,但是又需要以這個用戶做一些操作,又不能去修改掉這個用戶的密碼,這個時候,就可以利用一些小竅門,來完成操作
    2015-01-01
  • 解決Oracle刪除重復(fù)數(shù)據(jù)只留一條的方法詳解

    解決Oracle刪除重復(fù)數(shù)據(jù)只留一條的方法詳解

    本篇文章是對Oracle刪除重復(fù)數(shù)據(jù)只留一條的解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • MSSQL與Oracle數(shù)據(jù)庫事務(wù)隔離級別與鎖機制對比

    MSSQL與Oracle數(shù)據(jù)庫事務(wù)隔離級別與鎖機制對比

    事務(wù)隔離級別是并發(fā)控制的整體解決方案,其實際上是綜合利用各種類型的鎖和行版本控制,來解決并發(fā)問題。鎖是數(shù)據(jù)庫并發(fā)控制的內(nèi)部機制,是基礎(chǔ)。對用戶來說,只有當(dāng)事務(wù)隔離級別無法解決一些并發(fā)問題和需求時,才有必要在語句中手動設(shè)置鎖。
    2014-08-08
  • 自動備份Oracle數(shù)據(jù)庫

    自動備份Oracle數(shù)據(jù)庫

    自動備份Oracle數(shù)據(jù)庫...
    2007-03-03

最新評論

涿鹿县| 武夷山市| 太谷县| 盐池县| 屏山县| 广灵县| 九台市| 东港市| 灵石县| 广东省| 舟曲县| 合作市| 江孜县| 石屏县| 马龙县| 红河县| 蓝山县| 宁国市| 镶黄旗| 大埔区| 长宁县| 卢湾区| 红原县| 永昌县| 贵南县| 蒙阴县| 临泽县| 桐柏县| 齐齐哈尔市| 瓮安县| 保亭| 安达市| 沙洋县| 芜湖市| 南靖县| 玉田县| 海南省| 阿合奇县| 海盐县| 务川| 龙海市|