识别字符串中字符的位置可能是数据操作中的常见挑战。为了解决这个问题,该问题探讨了一种场景,其中需要从表列中提取直到特定字符(在本例中为下划线 ('_'))的子字符串。
使用 SUBSTRING 函数的初始方法被证明是不够的,因为它依赖于基于位置的选择。由于给定示例中下划线的位置有所不同,因此该方法无法一致地检索所需的子字符串。
RTRIM 函数的考虑,旨在从右侧删除一组特定的字符,最初似乎很有希望。但是,除非将 RTRIM 函数与其他方法结合使用,否则它无法隔离下划线之前的字符。
解决方案在于将 SUBSTR 函数与 INSTR(标识字符位置)和 NVL(处理空值)结合起来。以下代码演示了这种方法:
SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output FROM DUAL
以上是如何在 Oracle SQL 中提取下划线之前的子字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!