我有一个格式如下的JSON: myjson = {"key":["value1","value2"]}和a我想将其转换为字符串
有时,此json可能返回NULL: myjson = {"key":null} .

我想以字符串的形式获取这些值,但在try 转换为cast(json_extract(myjson,'$.key') as varchar)时出现错误. 错误说明无法将‘["value1","value2"]’转换为varchar.我想是因为双引号的缘故.我需要帮助来解决这个问题.

发帖主题:Re:Kolibrios

  • Json_Extract(myjson,‘$.key’)的输出是一个json对象;
  • 我想获取类似‘value1,value2’或‘NULL’的字符串
  • 目前我不知道如何核实它是否为空

推荐答案

您可以使用json_format(不过,根据以下用法,在某些情况下,只保留json_extract而不使用强制转换/格式等可能会很好):

-- sample data
with dataset(json_str) as (
    values ('{"key":["value1","value2"]}'),
        ('{"key":null}')
)

-- query
select json_format(json_extract(json_str,'$.key'))
from dataset;

输出:

_col0
["value1","value2"]
null

Sql相关问答推荐

当编号和版本的唯一状态更改时报告

PostgreSQL:获取每家店铺收入最高的员工

基于模式或其他行集的数据复制

从以前的非空值行中获取值

Select 非重复值并按条件排除行

基于多参数的SQL Server条件过滤

根据时间、状态和相关行在PostgreSQL中的存在来删除行

Haystack针相交-在元素最多的Haystack中查找集合

将伪数据插入Postgres表

更改重复值的情况

Postgres,使用 select 插入多个值

如何使用最后一个非 NULL 值在 PostgreSQL 列中填充 NULL 值

我可以在 T-SQL (SQL Server) 的函数内使用 OPTION 子句吗?

获取上个月和上一年的值

在Snowflake中,如何将以逗号和连字符分隔的多个混合数值拆分成数字列表

如何优化仅返回符合条件的三条记录的查询?

正则表达式:停在第一个匹配的其中一个字符位置上

如何显示最常引用条目的详细信息

聚合 Athena 中的列

当我按 PK 分组时,该表中的所有列在每个组中都具有相同的值.那么为什么 SQL Server 需要对这些列进行聚合呢?