如何在Sql Server 2016中使用OPENJSON从字段名称包含空间的json文件中读取值。请参见以下代码:
DECLARE @json NVARCHAR(MAX)
SET @json = N'{ "full name" : "Jayesh Tank"}';
SELECT * FROM OPENJSON(@json) WITH ( [name] [varchar](60) '$.full name')
该字段中的另一个示例代码也位于字段名称之后。
SET @json = N'{ "name " : "abc"}';
SELECT * FROM OPENJSON(@json) WITH ( [name] [varchar](60) '$.name')
'$.name'
将返回null。是否可以读取此值?
通常,在属性名称中使用空格是个坏主意。
我会[
]
从您的OPENJSON名称和varchar(60)中删除-源MSDN OPENJSON。
现在实际回答您的问题:
您需要在WITH
子句中用双引号格式化属性:
@DECLARE @json NVARCHAR(MAX);
SET @json=N'{ "full name" : "Jayesh Tank"}';
SELECT * FROM OPENJSON(@json) WITH (name varchar(60) '$."full name"')
对于第二个:
SET @json = N'{ "name " : "abc"}';
SELECT * FROM OPENJSON(@json) WITH ( name varchar(60)'$."name "')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句