我在Oracle表中有一个列,它有许多值,其中包含一组代码,如下所示:
(5000311520)智能电视40英寸+电影/互联网(高速)
现在我要删除代码:(5000311520)
这意味着结果应该是:智能电视40英寸+电影院/互联网(高速)
任何人都可以帮助我吗? 提前谢谢。
答案 0 :(得分:0)
要选择您感兴趣的部分,可以尝试以下SELECT语句:
SELECT REGEXP_REPLACE(yourColumn, '\([[:digit:]]+\) (.*)', '(\1)') AS result
FROM yourTable;
答案 1 :(得分:0)
要在开头选择没有数字代码:
select REGEXP_REPLACE(Comments,'^\([0-9]+\)\s*','') from Table1
解释正则表达式:
^ : start of the text
\( : a literal '(' character
[0-9]+ : 1 or more digits from 0 to 9
\) : a literal ')' character
\s* : 0 or more whitespaces (spaces, tabs, linefeeds, ...)
永久地从列值中删除代码?
您也可以在where子句中使用此类正则表达式:
update Table1
set Comments = REGEXP_REPLACE(Comments,'^\([0-9]+\)\s*','')
where REGEXP_LIKE(Comments,'^\([0-9]+\)')