从redshift sql中的varchar中提取值

Posted

技术标签:

【中文标题】从redshift sql中的varchar中提取值【英文标题】:extract values from varchar in redshift sql 【发布时间】:2018-08-28 00:51:52 【问题描述】:

从 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

【问题讨论】:

【参考方案1】:

如果是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

【讨论】:

以上是关于从redshift sql中的varchar中提取值的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SQL 中的列值中提取特定部分(Redshift 平台)

如何从SQL中的列值中提取特定部分(Redshift平台)

从 SQL 中的时间戳中提取时间

从 Amazon Redshift 中的 json 数组中提取特定键

在 Redshift SQL 中从数组中提取值

Amazon Redshift - 表列声明为 varchar(max) 但强制为 varchar(255)