使用REGEXP_SUBSTR获取键值对数据

香卡

我有一栏包含以下值,

User_Id=446^User_Input=L307-60#/25" AP^^

我试图基于指定的键获取每个单独的值。

  1. User_Id =之后的所有值,直到遇到^
  2. User_Input =之后的所有值,直到遇到^

我尝试过,到目前为止,我有这个,

SELECT  LTRIM(REGEXP_SUBSTR('User_Id=446^User_Input=L307-60#/25" AP^'
          ,'[0-9]+',1,1),'^') User_Id 
from dual

如何获取User_Input的值?

PS:用户输入可以^在字符串中间包含',“,*,%之类的任何内容(包括a)(即,不作为分隔符)。

任何帮助将不胜感激..

装甲运兵车

使用无聊的旧INSTR来计算KEY和VALUE字符串的起点和终点的偏移量,可以轻松解决此问题

技巧是使用可选的出现参数来标识的每个正确实例=因为输入可以包含插入符,但不能将它们用作分隔符,因此我们需要使用负数来标识最后一个^

with cte as  (
  select kv
         , instr(kv, '=', 1, 1)+1 as k_st  -- first occurrence 
         , instr(kv, '^', 1) as k_end
         , instr(kv, '=', 1, 2)+1 as v_st  -- second occurrence 
         , instr(kv, '^', -1) as v_end     -- counting from back
  from t23
  )
select substr(kv, k_st, k_end - k_st) as user_id
       , substr(kv, v_st, v_end - v_st) as user_input
from cte
/

这是证明它有效必要SQL Fiddle我认为这比任何正则表达式都容易理解。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

REGEXP_SUBSTR查询

来自分类Dev

在sql oracle中使用regexp_substr在特定单词之后获取单词

来自分类Dev

regexp_substr 在正斜杠之前带回数据

来自分类Dev

在返回游标的函数中使用regexp_substr

来自分类Dev

使用regexp_substr时SQL缺少表达式

来自分类Dev

使用REGEXP_SUBSTR提取部分字符串

来自分类Dev

REGEXP_SUBSTR查找组

来自分类Dev

REGEXP_SUBSTR圆括号

来自分类Dev

regexp_substr结果解释

来自分类Dev

oracle中的REGEXP_SUBSTR

来自分类Dev

PIVOT的Oracle REGEXP_SUBSTR列名称

来自分类Dev

在SQL Server中替换REGEXP_SUBSTR

来自分类Dev

如何转义'[',']','|'等字符 在regexp_substr中

来自分类Dev

oracle中REGEXP_SUBSTR中的混乱

来自分类Dev

甲骨文SQL:Regexp_substr

来自分类Dev

关于 Regexp_substr 的 Oracle 查询

来自分类Dev

regexp_substr 获取字符串值和管道之间的字符串

来自分类Dev

正则表达式获取点和空格之间的所有内容 regexp_substr

来自分类Dev

使用regexp_substr选择逗号之间的单词(不包括双引号)

来自分类Dev

使用regexp_substr获得第二次出现

来自分类Dev

需要使用REGEXP_SUBSTR提取文本-找不到正确的组合

来自分类Dev

Oracle REGEXP_SUBSTR无法与我的模式一起使用

来自分类Dev

在 Oracle 中使用 REGEXP_SUBSTR 从字符串中提取 ID 号

来自分类Dev

在plsql中使用REGEXP_SUBSTR从字符串中提取数字(使用不同的定界符)

来自分类Dev

REGEXP_SUBSTR转换后的输出未转换为整数

来自分类Dev

Oracle中REGEXP_SUBSTR的正则表达式

来自分类Dev

\ s和REGEXP_SUBSTR中的[:space:]之间的区别

来自分类Dev

存储过程中的REGEXP_SUBSTR函数返回null

来自分类Dev

Oracle SQL regexp_substr数字提取行为

Related 相关文章

热门标签

归档