database - 如何在 Oracle 的 REGEXP_REPLACE 中使用列引用?
问题描述
我的脚本如下所示:
SELECT
regexp_replace(column1,'"resId":([^"]+?)..','"resId":column2,"')
FROM
table;
在这里,我需要将 column1 中的 resId 值替换为 column2 中的值。
解决方案
如果没有样本数据和预期输出,很难说出您到底想要什么。
看来您希望转换这样的模式 -"resId":Value1,"otherid":othervalue
请注意,我考虑到
"resID":value
数据中存在一个键值对,并且这些键值对之间有一个分隔符(空格或逗号)。
(,|$)
表示 . 之后的逗号分隔符或行尾value
。您可以将其更改为在数据中包含任何将其与其他组合区分开来的分隔符。如果没有这样的东西并且数据比这更纯粹,您应该通过编辑您的问题来清楚地描述它,这可能有助于我们为您提供适当的解决方案。
查询:
SELECT column1,
column2,
regexp_replace(column1,'"resId":[^"]+(,|$)','"resId":' || column2 || '\1') as replaced
FROM t
结果:
| COLUMN1 | COLUMN2 | REPLACED |
|-------------------------------------|---------|-------------------------------------|
| "resId":Value1,"otherid":othervalue | Value2 | "resId":Value2,"otherid":othervalue |
| "otherid":othervalue,"resId":Value1 | Value2 | "otherid":othervalue,"resId":Value2 |
推荐阅读
- javascript - 手机上传时图片横着上传 - vue.js
- python - 在 Python 中读取 .json 文件,但事先不知道它是否包含在方括号 [ ] 中
- c# - WPF Caliburn.Micro ComboBox IsEditable Text Changed Event 直到 Action Event 之后才触发
- dc.js - 更改 d3.scaleLinear().domain() 上的最小最大颜色范围
- python - 如何在具有多个条件的python中为数据框创建逻辑语句?
- python - 如何将数学数字转换为浮点数
- javascript - 由于多个请求,对 Node.js 服务器的请求超时
- google-colaboratory - 在 Google Colaboratory Notebook 上使用 Geoviews 绘制 Xarray 图像
- regex - 如何在匹配前后对模式进行 sed
- deep-learning - 在不使用面部识别的情况下识别一个人的最佳方法(深度学习)