Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JSON值查询SQL数据库_Json_Sql Server - Fatal编程技术网

使用JSON值查询SQL数据库

使用JSON值查询SQL数据库,json,sql-server,Json,Sql Server,这是我的JSON: [{"Key":"schedulerItemType","Value":"schedule"},{"Key":"scheduleId","Value":"82"},{"Key":"scheduleEventId","Value":"-1"}

这是我的JSON:

[{"Key":"schedulerItemType","Value":"schedule"},{"Key":"scheduleId","Value":"82"},{"Key":"scheduleEventId","Value":"-1"},{"Key":"scheduleTypeId","Value":"2"},{"Key":"scheduleName","Value":"Fixed Schedule"},{"Key":"moduleId","Value":"5"}]
我想按FileMetadata列查询数据库

我试过这个:

  SELECT * FROM FileSystemItems WHERE JSON_VALUE(FileMetadata, '$.Key') = 'scheduleId' and JSON_VALUE(FileMetadata, '$.Value') = '82'
但它不起作用

我让它只使用一个字典键/值对,但我需要以不同的方式返回数据,所以我现在将它与键和值一起添加到json中


我做错了什么?

对于给定的示例数据,您必须提供一个数组索引来查询第1个元素(基于0的数组索引),例如:

选择*
从dbo.filesystemems
其中json_值(FileMetadata,$[1].Key')='scheduleId'
和json_值(FileMetadata,$[1].value')='82'
如果
scheduleId
键可以出现在数组中的任意位置,则可以重新构造查询以供使用,例如:

选择*
从dbo.filesystemems
将openjson(FileMetadata)与(
[Key]nvarchar(50)N'$.Key',
值nvarchar(50)N'$.Value'
)j
其中j.[Key]=N'scheduleId'
和j.值=N'82'
就是这样!!!谢谢:-)我用了第一项。它应始终位于1索引(第2项)