如何在 SQL Server 2016 中使用 OPENJSON 在 Json 中使用 space 读取字段名称
How to read field name with space in Json using OPENJSON in SQL Server 2016
如何使用 Sql 中的 OPENJSON 从包含 space 的 json 文件中读取值服务器 2016。见以下代码:
DECLARE @json NVARCHAR(MAX)
SET @json = N'{ "full name" : "Jayesh Tank"}';
SELECT * FROM OPENJSON(@json) WITH ( [name] [varchar](60) '$.full name')
space 中的另一个示例代码在字段名称之后。
SET @json = N'{ "name " : "abc"}';
SELECT * FROM OPENJSON(@json) WITH ( [name] [varchar](60) '$.name')
'$.name'
return null.Is 有办法读取这个值吗?
通常在属性名称中使用空格是个坏主意。
我会从您的 OPENJSON 名称和 varchar(60) 中省略 [
]
- source 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 "')
如何使用 Sql 中的 OPENJSON 从包含 space 的 json 文件中读取值服务器 2016。见以下代码:
DECLARE @json NVARCHAR(MAX)
SET @json = N'{ "full name" : "Jayesh Tank"}';
SELECT * FROM OPENJSON(@json) WITH ( [name] [varchar](60) '$.full name')
space 中的另一个示例代码在字段名称之后。
SET @json = N'{ "name " : "abc"}';
SELECT * FROM OPENJSON(@json) WITH ( [name] [varchar](60) '$.name')
'$.name'
return null.Is 有办法读取这个值吗?
通常在属性名称中使用空格是个坏主意。
我会从您的 OPENJSON 名称和 varchar(60) 中省略 [
]
- source 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 "')