WITH dataset AS (SELECT * FROM (VALUES
    (JSON '{"name": "Bob Smith", "org": "legal"}'),
    (JSON '{"name": "Susan Smith", "org": "engineering"}'),
    (JSON '{"name": "Jane Smith", "org": "finance"}')
  ) AS t (users)
)
SELECT json_extract_scalar(users, '$.name') AS user
FROM dataset

我希望在此查询中使用如下条件 Where‘org’=‘Legal’我如何才能做到这一点?

推荐答案

在以下位置中使用json_extract_scalar:

-- sample data
WITH dataset(users) AS (VALUES
    (JSON '{"name": "Bob Smith", "org": "legal"}'),
    (JSON '{"name": "Susan Smith", "org": "engineering"}'),
    (JSON '{"name": "Jane Smith", "org": "finance"}')
)

-- query
SELECT json_extract_scalar(users, '$.name') AS user
FROM dataset
WHERE json_extract_scalar(users, '$.org') = 'legal';

输出:

user
Bob Smith

Sql相关问答推荐

Oracle中的分层查询

在SQL中向每个子字节组添加字节行

PG SQL中按条件聚合值

无法找到正确的SQL查询需求

使用WHERE子句进行筛选时,SQL SELECT查询返回总计数

如何在Presto中将多个列合并到一个数组中

OVER子句WITH PARTITION BY和ORDER BY忽略主查询的WHERE子句

对表进行多项 Select 以返回最大值和时间

将计算列设置为持久化的目的是什么?

使用多个嵌套数组查询JSON数据

无法将发票与产品价格相关联

多条件SQL排序行为

SQL仅返回第一个字母在A-Z之间的值

使用特定的Order By子句随机化SQL输出

Postgresql - 如何根据阈值计算累积和

根据要过滤的列的值进行联接和分组

将一名成员金额分配给群组内的其他成员

COBOL\DB2作业(job)需要帮助?快来获取专业指导!

BigQuery - 将 TIMESTAMP 转换为 HH:MM:SS,然后识别 TIME_DIFF

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