如何在 Oracle 中有效地將逗號分隔值拆分為列?
Jan 22, 2025 am 09:26 AMOracle 資料庫:有效地將逗號分隔值解析為欄位
本文解決了 Oracle 中的一個常見挑戰:將逗號分隔字串 (CSV) 中的各個值提取到不同的列中。 手動處理大量值(例如 255)是不切實際的;然而,Oracle 提供了高效的解決方案。
一個有效的方法是使用 REGEXP_SUBSTR
函數,使用正規表示式啟用字串拆分。 正規表示式的結構對於準確的結果至關重要。
考慮以下數據:
<code>ROW | VAL ----------- 1 | 1.25, 3.87, 2, ... 2 | 5, 4, 3.3, ....</code>
登入後複製
要將這些值分成單獨的列,我們可以使用這個 REGEXP_SUBSTR
表達式:
regexp_substr('1,2,3,,5,6', '(.*?)(,|$)', 1, 5, NULL, 1)
登入後複製
此表達式旨在:
- 找到任意字元序列 (
.
) 第五次出現零次或多次 (*
),後面跟著逗號 (,
) 或字串結尾 ($
)。 - 提取第一個捕獲的群組(資料本身,不包括逗號或字串結尾)。
這個改進的表達式可以優雅地處理 null 元素,防止它們破壞後續值的提取。
為了提高可重複使用性,可以將複雜的正規表示式封裝在自訂函數中,如本論壇討論所示:https://www.php.cn/link/ae2cd9938873f32a93b6c85862f26b .
總之,將 REGEXP_SUBSTR
與精心設計的正規表示式結合,提供了一種在 Oracle 中解析逗號分隔值的可靠方法,即使在處理空值或缺失值時也是如此。
以上是如何在 Oracle 中有效地將逗號分隔值拆分為列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)
