declare @Path as nvarchar(100)
set @path = '$.path.to."sub-object"'
DECLARE @json NVARCHAR(4000) = N'{
"path": {
"to":{
"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]
}
}
}';
SELECT [key], value
FROM OPENJSON(@json, @Path)
我有错误:
Incorrect syntax near '@Path'.
如何声明我可以更改它的@path。
最佳答案
将路径作为变量传递给 OPENJSON可从 SQL Server 2017
获得(又名 vNext):
In SQL Server 2017 and in Azure SQL Database, you can provide a variable as the value of path.
declare @Path as nvarchar(100)
set @path = '$.path.to."sub-object"'
DECLARE @json NVARCHAR(4000) = N'{
"path": {
"to":{
"sub-object":["en-GB", "en-UK","de-AT","es-AR","sr-Cyrl"]
}
}
}';
SELECT [key], value
FROM OPENJSON(@json, @Path);
DbFiddle Demo
关于sql-server - T-SQL OPENJSON 路径作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45547799/