PLSQL 提取单打值
PLSQL extract singles value
我想从链接中提取单个值:
Column1
---------------
<a href=" https://link; m=date1>Link</a>
<a href=" https://link; m=date2>Link</a>
结果列应如下所示:
Column1 Column2
---------------
<a href=" https://link; m=date1>Link</a> date1
<a href=" https://link; m=date2>Link</a> date2
尝试regexp_substr
如下:
SQL> SELECT
2 REGEXP_SUBSTR('<a href=" https://link; m=date1>Link</a>', 'm=(.*?)>', 1, 1, NULL, 1)
3 FROM
4 DUAL;
REGEX
-----
date1
SQL>
干杯!!
试试下面的代码:
insert into B_TEST_TABLE values('<a href=" https://link; m=date1>Link</a>');
insert into B_TEST_TABLE values('<a href=" https://link; m=date2>Link</a>');
select COLUMN1,
substr(COLUMN1, instr(COLUMN1, 'm=') +2 , instr(COLUMN1, '>') - (instr(COLUMN1, 'm=') + 2))
from B_TEST_TABLE;
假设每行给出一个目标 "m=<value wanted>"
模式的确切样本数据,您可以使用此 REGEXP_REPLACE() 示例:
with tbl(id, str) as (
select 1, '<a href=" https://link; m=date1>Link</a>' from dual union all
select 2, '<a href=" https://link; m=date2>Link</a>' from dual union all
select 3, '<a href=" https://link; m=>Link</a>' from dual union all
select 4, NULL from dual
)
select id, regexp_replace(str, '.*m=(\w+).*', '') col1
from tbl;
匹配"m="
行中的任意位置,并将后面的一个或多个单词字符保存到记住的组中。 Return 第一个记住的组。请注意,如果未找到模式,则输入字符串将被 returned。您可以通过使组匹配零个或多个单词字符来使其 return 为 NULL(在第 3 行的情况下):'.*m=(\w*).*'
。如果找不到匹配项,请仔细考虑您想要 return编辑什么。
我想从链接中提取单个值:
Column1
---------------
<a href=" https://link; m=date1>Link</a>
<a href=" https://link; m=date2>Link</a>
结果列应如下所示:
Column1 Column2
---------------
<a href=" https://link; m=date1>Link</a> date1
<a href=" https://link; m=date2>Link</a> date2
尝试regexp_substr
如下:
SQL> SELECT
2 REGEXP_SUBSTR('<a href=" https://link; m=date1>Link</a>', 'm=(.*?)>', 1, 1, NULL, 1)
3 FROM
4 DUAL;
REGEX
-----
date1
SQL>
干杯!!
试试下面的代码:
insert into B_TEST_TABLE values('<a href=" https://link; m=date1>Link</a>');
insert into B_TEST_TABLE values('<a href=" https://link; m=date2>Link</a>');
select COLUMN1,
substr(COLUMN1, instr(COLUMN1, 'm=') +2 , instr(COLUMN1, '>') - (instr(COLUMN1, 'm=') + 2))
from B_TEST_TABLE;
假设每行给出一个目标 "m=<value wanted>"
模式的确切样本数据,您可以使用此 REGEXP_REPLACE() 示例:
with tbl(id, str) as (
select 1, '<a href=" https://link; m=date1>Link</a>' from dual union all
select 2, '<a href=" https://link; m=date2>Link</a>' from dual union all
select 3, '<a href=" https://link; m=>Link</a>' from dual union all
select 4, NULL from dual
)
select id, regexp_replace(str, '.*m=(\w+).*', '') col1
from tbl;
匹配"m="
行中的任意位置,并将后面的一个或多个单词字符保存到记住的组中。 Return 第一个记住的组。请注意,如果未找到模式,则输入字符串将被 returned。您可以通过使组匹配零个或多个单词字符来使其 return 为 NULL(在第 3 行的情况下):'.*m=(\w*).*'
。如果找不到匹配项,请仔细考虑您想要 return编辑什么。