在 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中文网其他相关文章!