Contract_Id
的数据如下
abc_rev4,abc_rev1,xxxxx_rev2,yyyyyyyy_rev4 .
我只需要数据中的"rev"。
数据始终以个位数结尾。
那么我将如何在substring
或right
的帮助下提取 rev
PS:rev中"v"的位置始终是最后一个但第一个字符
这将从字符串中提取所有rev
实例:
SELECT REGEXP_REPLACE(
'abc_rev4,abc_rev1,xxxxx_rev2,yyyyyyyy_rev4',
'[^,]+(rev)d(,|$)',
'12'
) AS revs
FROM DUAL
输出:
REVS
---------------
rev,rev,rev,rev
如果每个列都在单独的列中,则:
WITH table_name ( value ) AS (
SELECT 'abc_rev4' FROM DUAL UNION ALL
SELECT 'abc_rev1' FROM DUAL UNION ALL
SELECT 'xxxxx_rev2' FROM DUAL UNION ALL
SELECT 'yyyyyyyy_rev4' FROM DUAL
)
SELECT value,
SUBSTR( value, -4, 3 ) AS rev
FROM table_name;
输出:
VALUE REV
------------- ---
abc_rev4 rev
abc_rev1 rev
xxxxx_rev2 rev
yyyyyyyy_rev4 rev