gpt4 book ai didi

sql - Oracle Regex 从字符串中的键值对中获取值

转载 作者:行者123 更新时间:2023-12-02 09:12:47 25 4
gpt4 key购买 nike

考虑以下列行:

col
-------------------------
'{"day":"8","every":"2"}'

我正在尝试使用正则表达式从该字符串中获取 8 来计算日期。

到目前为止我有:

SELECT 
regexp_replace(col, '{"day":[^0-9]', '') as "day"
FROM
mytable;

这给了我:

 day
---------------
8","every":"2"}

我无法弄清楚如何从第一个数字向前过滤掉字符串的其余部分。在我的示例中,我只想要此行的数字 8。

最佳答案

如果您有幸使用 Oracle 12c 第 1 版 (12.1.0.2) 或更高版本,请查看 JSON_VALUE

WITH t (s)
AS (
SELECT '{"day":"8","every":"2"}'
FROM DUAL
)
SELECT JSON_VALUE(s, '$.day' ) AS day
, JSON_VALUE(s, '$.every') AS every
FROM t;

DAY EVERY
--- -----
8 2

关于sql - Oracle Regex 从字符串中的键值对中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50258453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com