我有以下列,我想用Column 2
中的值搜索Column 1
,然后提取Column2 || '/'
和逗号之间的值。
| 列2| Column2 |
| --| ------------ |
| 040| 040 |
| 050| 050 |
| 060| 060 |
| 零七零| 070 |
| 八零| 080 |
产出
| 列2|产出| Output |
| --|--| ------------ |
| 040|一个| 1 |
| 050|一个| 1 |
| 060|二个| 2 |
| 零七零|一个| 1 |
| 八零|一个| 1 |
我尝试使用Regexp_substr,但不确定如何在Pattern参数中使用Column 2。我想我应该能够用一系列复杂的Substr + Instr来做到这一点,但想知道是否有更好的方法来做到这一点?
1条答案
按热度按时间imzjd6km1#
可以使用表达式
regexp_substr(column1, column2||'/([^,]*)', 1, 1, null, 1)
。像
060/([^,]*)
这样的正则表达式将匹配文字字符串060/
及其后面的所有内容,直到第一个逗号(如果出现)。/
之后的部分将被捕获到组号1中。默认情况下,
regexp_substr
提取完全匹配,但使用提供的参数,它只提取捕获到编号为1的组中的内容(特别是最后一个参数)。regexp_substr
的参数详情请点击此处。小提琴
正则表达式here的演示。