sql - 在 SQL 中使用 Json auto 进入打开的 Json
问题描述
这种语法在 SQL 中是否可行:
SELECT *
FROM OPENJSON(SELECT * FROM FoodSara_tbl FOR JSON AUTO)
如果是,你能解释一下如何以及为什么?
如果不是,为什么?而不是那种野兽的方式是什么?
解决方案
此查询正确!
SELECT *
FROM OPENJSON(CONVERT(NVARCHAR(MAX),(SELECT * FROM [dbo].[temp1] FOR JSON AUTO)))
OPENJSON 命令给出一个包含 json 数据作为参数的字符串,但是当你从表中生成 json 时,你有一个纯 json 作为结果集,而 OPENJSON 给出了一个字符串参数作为 json。
两者不同
如果您运行此代码
SELECT * FROM [dbo].[temp1] FOR JSON AUTO
你看到这个结果
[{"Pname":"Ava","Pregion":"German","Pcount":10},{"Pname":"Ava","Pregion":"UK","Pcount":5}]
如果将此结果放在 OPENJSON 上
SELECT *
FROM OPENJSON([{"Pname":"Ava","Pregion":"German","Pcount":10},{"Pname":"Ava","Pregion":"UK","Pcount":5}])
见下面的错误
Invalid column name '{"Pname":"Ava","Pregion":"German","Pcount":10},{"Pname":"Ava","Pregion":"UK","Pcount":5}'.
但是如果你 '
在你的 json. 它的解析正确
'
是 SQL Server 中字符串的符号
推荐阅读
- php - 在更新多行之前验证 foreach 循环中的输入
- reactjs - 如何在不添加 Jsx 标签的情况下显示自定义警报
- javascript - Next.js dynamic page params for static export
- javascript - 无法通过 ajax 将带有单选按钮数据的额外表单数据传递给 php
- javascript - 如何在 onClick 中调用多个方法进行反应?
- java - 使用两个不同的ArrayLists时如何根据uids查找组?
- sql-server - SQL Server Report Builder - TransactionDate value incorrectly appearing larger than the endDate value
- javascript - 未处理的拒绝(TypeError):planets.filter 不是函数
- asp.net - Telerik Image Manager - 上传图像时 JSON 解析错误并且 EnableAsyncUpload 设置为 True
- oracle-apex - 页面重定向不起作用,但在调试模式下工作