問題:
從包含先前具有不同字元序列的結果的列中選擇子字串下劃線(「_」)字符,同時排除底線
解:
為了達到預期的結果,SQL函數的組合提供了解決方案:
SELECT NVL(SUBSTR(column, 0, INSTR(column, '_')-1), column) AS output FROM YOUR_TABLE;
說明:
範例:
給定:
ORG | VALUE 1 | ABC_blahblahblah 2 | DEFGH_moreblahblahblah 3 | IJKLMNOP_moremoremoremore
查詢:
SELECT NVL(SUBSTR(VALUE, 0, INSTR(VALUE, '_')-1), VALUE) AS output FROM ORG;
結果:
OUTPUT ABC DEFGH IJKLMNOP
註:
對於Oracle10g版本中,REGEXP_SUBSTR函數可以用來取代SUBSTR:
SELECT REGEXP_SUBSTR(column, '^.*(?=_)') AS output FROM YOUR_TABLE;
以上是如何在 Oracle SQL 中提取下劃線之前的子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!