Oracle:使用REGEXP_LIKE的SQL

时间:2012-08-29 05:05:27

标签: sql oracle

我需要从Oracle表中的单元格值中提取字符串。我怎么能这样做?

VALUE
--------
/var1/var2/var3/C751994ZP1QT11/var4.itp

我想使用SQL从值中提取“C751994ZP1QT11”。我搜索了一些像REGEXP_LIKE这样的函数,但我不太明白如何使用它。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如果要提取字符串,则需要使用regexp_substr()regexp_like()将返回一个布尔值,指示某个正则表达式是否与您的字符串匹配,而regexp_substr()实际返回匹配的字符串。

在您的情况下,假设您想要/****/之间的字符串,您可以使用以下内容:

select 
  regexp_substr(
    '/var1/var2/var3/**C751994ZP1QT11**/var4.itp', 
    '/\*\*.*\*\*/') 
from dual

请参阅here以获取有关Oracle正则表达式的一些有用的快捷方式。

答案 1 :(得分:0)

select REGEXP_REPLACE('/var1/var2/var3/**C751994ZP1QT11**/var4.itp','.*\*\*(.*)\*\*.*','\1') result from dual