sql - SQL Where 列包含 Json 数组
问题描述
我正在尝试查询包含 json 对象数组的列。
对象数组如下所示:
[
{
"TYPE": "car",
"NAME": "lucy"
},
{
"TYPE": "bus",
"NAME": "bob"
},
{
"TYPE": "car",
"NAME": "mary"
}
]
我正在尝试选择该列是否包含 type = "car" 和 name = "lucy" 的对象
解决方案
您可以使用OPENJSON
将数组拆分为单独的行:
SELECT j.*
FROM YourTable t
CROSS APPLY OPENJSON(t.) WITH (
[TYPE] varchar(50),
[NAME] varchar(50)
) j
WHERE j.[TYPE] = 'car' AND j.[NAME] = 'lucy'
或者,如果您只想基于此过滤主表,请将其放在WHERE
SELECT t.*
FROM YourTable t
WHERE EXISTS (SELECT 1
FROM OPENJSON(t.) WITH (
[TYPE] varchar(50),
[NAME] varchar(50)
) j
WHERE j.[TYPE] = 'car' AND j.[NAME] = 'lucy'
);
推荐阅读
- html - 我的 CSS 不适用于我的手机屏幕宽度
- python - 数据框列中的值不会从字符串更改为浮点数
- mysql - 如果数据库名称使用大写字母,则无法从 MySQL Workbench 创建存储过程
- fabricjs - 如何使用 scalecontroler 缩放图像
- dynamic - 如何在 PySpark 中动态组合 where 条件
- python - 具有多个输入但没有 tf.placeholder 用于验证的 TensorFlow 图
- java - java.sql.SQLException : 找不到适合 jdbc:ucanaccess://C:\Users\Mr_sk\Desktop\account.mdb 的驱动程序
- sql-server - 我可以根据 COUNT 更新列吗?(SQL)
- jmeter - Jmeter - 如何将 jmx 添加到 docker 文件中
- cucumber - 如何将 Cucumber Scenario 结果更改为 @After 挂钩