如何在字符oracle之后获取字符串

Aru*_*nam 6 sql oracle substring

我有VP3 - 艺术与设计和HS5 - 健康与社会关怀,我需要在Oracle之后获得字符串' - '.这可以使用子串实现吗?

谢谢,Ar

Tim*_*sen 9

对于像这样简单的字符串操作,我可能只使用基数INSTR()SUBSTR()函数.在下面的查询中,我们从连字符后面的两个位置开始列的子字符串.

SELECT
    SUBSTR(col, INSTR(col, '-') + 2) AS subject
FROM yourTable
Run Code Online (Sandbox Code Playgroud)

我们也可以REGEXP_SUBSTR()在这里使用(参见Gordon的回答),但它会有点复杂,性能可能不如上面的查询那么好.


Gor*_*off 7

您可以使用regexp_substr()

select regexp_substr(col, '[^-]+', 1, 2)
Run Code Online (Sandbox Code Playgroud)

如果要删除可选空间,则可以使用trim()

select trim(leading ' ', regexp_substr(col, '[^-]+', 1, 2))
Run Code Online (Sandbox Code Playgroud)

非显而易见的参数表示

  • 1-从来源的第一个字符开始搜索。1是默认值,但是您必须进行设置才能提供第二个参数。
  • 2-将第二个匹配项作为结果子字符串。默认值为1。