如何解决在 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","Pcount":5}])
看下面的错误
Invalid column name '{"Pname":"Ava","Pcount":5}'.
但是如果您在 json 的第一个也是最重要的位置添加 '
。其解析正确
'
是 SQL Server 中的字符串符号
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。