Oracle中REGEXP_SUBSTR函式(字串轉多行)
Oracle中REGEXP_SUBSTR
函式的使用說明:
題目如下:
在oracle
中,使用一條語句實現將’17,20,23’拆分成’17’,’20’,’23’的集合。
REGEXP_SUBSTR
函式格式如下:
function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)
__srcstr
:需要進行正則處理的字串
__pattern
:進行匹配的正規表示式
__position
:起始位置,從第幾個字元開始正規表示式匹配(預設為1)
__occurrence
:標識第幾個匹配組,預設為1
__modifier
:模式(’i’不區分大小寫進行檢索;’c’區分大小寫進行檢索。預設為’c’。)
1、查詢使用正則分割後的第一個值,也就是17
SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,1,'i') AS STR FROM DUAL;
結果:
STR
-----
17
2、查詢使用正則分割後的最後一個值,也就是23
SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,3,'i') AS STR FROM DUAL;
結果:
STR
----
23
3、獲取一個多個數值的列,從而能夠讓結果以多行的形式展示出來
SELECT LEVEL FROM DUAL CONNECT BY LEVEL <=7;
結果:
LEVEL
----
1
2
3
4
5
6
7
4、將上面REGEXP_SUBSTR
的occurrence
關聯
SELECT NVL(REGEXP_SUBSTR('17,20,23', '[^,]+', 1, LEVEL, 'i'), 'NULLL') AS STR
FROM DUAL
CONNECT BY LEVEL <= 7;
STR
----
17
20
23
NULL
NULL
NULL
NULL
5、優化上面的SQL語句,讓生成的行的數量符合實際情況
SELECT REGEXP_SUBSTR('17,20,23', '[^,]+', 1, LEVEL, 'i') AS STR
FROM DUAL
CONNECT BY LEVEL <=
LENGTH('17,20,23') - LENGTH(REGEXP_REPLACE('17,20,23', ',', ''))+1;
STR
----
17
20
23
相關文章
- Oracle 字串函式Oracle字串函式
- Oracle 字串函式Oracle字串函式
- 在oracle中將一行字串拆分成多行Oracle字串
- oracle函式手冊(轉)Oracle函式
- SqlServer中將字串轉utf-8的函式、支援中文的UrlEncode函式SQLServer字串函式
- ORACLE分析函式手冊(轉)Oracle函式
- Oracle OCP(05):轉換函式Oracle函式
- sql、oracle資料多行轉單行SQLOracle
- ORACLE分析函式手冊二(轉)Oracle函式
- oracle Forms Builder常用函式 (轉載)OracleORMUI函式
- 【函式】Oracle12c 列轉行函式使用listagg函式Oracle
- JavaScript 多行字串JavaScript字串
- 將數值轉換為字串的函式字串函式
- Oracle以逗號分隔的字串拆分為多行資料Oracle字串
- Oracle中pivot函式詳解Oracle函式
- 工作中,Oracle常用函式Oracle函式
- Oracle中Decode()函式的使用Oracle函式
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- 字串函式 metaphone ()字串函式
- 字串函式 print ()字串函式
- 字串函式 explode ()字串函式
- 字串函式 ord ()字串函式
- 字串函式 ltrim ()字串函式
- 字串函式 levenshtein ()字串函式
- 字串函式 lcfirst ()字串函式
- 字串函式 implode ()字串函式
- 字串函式 fprintf ()字串函式
- 字串函式 htmlentities ()字串函式HTML
- 字串函式 htmlspecialchars ()字串函式HTML
- PHP字串函式PHP字串函式
- oracle 函式Oracle函式
- oracle or 函式Oracle函式
- MySQL 字串函式:字串擷取MySql字串函式
- PHP 每日一函式 — 字串函式 crypt ()PHP函式字串
- PHP 每日一函式 — 字串函式 chr ()PHP函式字串
- PHP 每日一函式 — 字串函式 addslashes ()PHP函式字串
- PHP 每日一函式 — 字串函式 addcslashes ()PHP函式字串
- MySQL函式學習(一)-----字串函式MySql函式字串