首页 > 解决方案 > 从redshift sql中的varchar中提取值

问题描述

从 varchar 中获取值的 SQL。我在 redshift 中有一个列元素作为 varchar,如下所示

Id   elements
1 [{"name":"email","value":"abc@gmail.com","nodeName":"INPUT","type":"text"},{"name":"password","value":"*****","nodeName":"INPUT","type":"password"},{"name":"checkbox","value":null,"nodeName":"INPUT","type":"checkbox"}]

如何在上面的这个数组中选择值,即。abc@123

标签: sqljsonamazon-redshift

解决方案


如果是MYSQL数据库,你应该使用

json_extract

https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html

SELECT 
    ID,
    json_extract(JSON_DATA, '$[0].value') AS MAIL
FROM JSON_TABLE;

结果:

ID  MAIL 
1   "abc@gmail.com"

演示:http ://rextester.com/live/SQG30833

Redshift应该可能使用json_extract_path_text函数 https://docs.aws.amazon.com/redshift/latest/dg/JSON_EXTRACT_PATH_TEXT.html


推荐阅读