在Oracle SQL 中擷取直到特定字元的子字串
從表格列中選取子字串但將範圍限制為特定字元可以是具有挑戰性的。考慮一個場景,其中有一列的值格式為「ABC_blahblahblah」。目標是僅提取下劃線之前的部分。
依賴於基於位置的選擇的 SUBSTRING 函數無法滿足下劃線位置的變化。 RTRIM 旨在從字串末尾刪除特定字符,但並非完全符合要求。
為了解決這個挑戰,可以採用 Oracle SQL 函數的組合。透過利用 SUBSTR、INSTR 和 NVL,我們可以達到預期的結果:
SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output FROM DUAL
解釋:
用法:
SELECT NVL(SUBSTR(t.column, 0, INSTR(t.column, '_')-1), t.column) AS output FROM YOUR_TABLE t
在 Oracle10g 中,可以使用 REGEXP_SUBSTR執行正規表示式匹配,提供另一種提取所需子字串的方法。
以上是如何在 Oracle SQL 中提取特定字元之前的子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!