如何从Oracle的列中提取子字符串?
我在Oracle中有一个将值存储在键中的列。例如 -
column_name |
---|
(((key1 =“ value1”和key2 ='value1'))或(key1 =“ value1”和key2 ='value2')) |
((key1 =“ null”和key2 ='valit key1 =“ value1”和key2 ='value4')) |
我只想在本列的每一行中提取key2或子句的值2 key2)
预期结果:
column_name | value |
---|---|
(((key1 =“ value1 =“ value1”) and key2 ='value1')或(key1 =“ value1”和key2 ='value2')) | value1 |
((key1 =“ null”和key2 ='value3')或(key1 =“ value1”和key2 ='value4'' )) | value3 |
有人可以大致给我一个想法吗?
I've a column in oracle that stores values in keys. Just for example-
Column_name |
---|
((key1="value1" AND key2='value1') OR (key1="value1" AND key2='value2')) |
((key1="null" AND key2='value3') OR (key1="value1" AND key2='value4')) |
I want to only extract the value of key2 before OR clause (as there are 2 key2 in every row of this column)
Expected result:
Column_name | Value |
---|---|
((key1="value1" AND key2='value1') OR (key1="value1" AND key2='value2')) | value1 |
((key1="null" AND key2='value3') OR (key1="value1" AND key2='value4')) | value3 |
Can somebody give me roughly an idea how to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设我们可以将您的逻辑描述为提取 first
key2
值,我们可以尝试使用捕获组使用regexp_substr
:Assuming we can describe your logic as extracting the first
key2
value, we can try usingREGEXP_SUBSTR
with a capture group: