如何从Oracle的列中提取子字符串?

发布于 2025-01-25 01:54:20 字数 727 浏览 4 评论 0原文

我在Oracle中有一个将值存储在键中的列。例如 -

column_name
(((key1 =“ value1”和key2 ='value1'))或(key1 =“ value1”和key2 ='value2'))
((key1 =“ null”和key2 ='valit key1 =“ value1”和key2 ='value4'))

我只想在本列的每一行中提取key2或子句的值2 key2)

预期结果:

column_namevalue
(((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_nameValue
((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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倒带 2025-02-01 01:54:20

假设我们可以将您的逻辑描述为提取 first key2值,我们可以尝试使用捕获组使用regexp_substr

SELECT col, REGEXP_SUBSTR(col, 'key2=''(.*?)''', 1, 1, NULL, 1) AS key
FROM yourTable;

Assuming we can describe your logic as extracting the first key2 value, we can try using REGEXP_SUBSTR with a capture group:

SELECT col, REGEXP_SUBSTR(col, 'key2=''(.*?)''', 1, 1, NULL, 1) AS key
FROM yourTable;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文