我需要从Oracle表中的单元格值中提取字符串。我怎么能这样做?
VALUE
--------
/var1/var2/var3/C751994ZP1QT11/var4.itp
我想使用SQL从值中提取“C751994ZP1QT11”。我搜索了一些像REGEXP_LIKE这样的函数,但我不太明白如何使用它。
非常感谢您的帮助。
答案 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