sql-server - T-SQL OPENJSON 路径作为变量

标签 sql-server json tsql

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/

相关文章:

SQL 选择以字母开头的列

java - Jersey REST 客户端 - 将自定义 MediaType 视为 MediaType.APPLICATION_JSON

c# - FluentMigrator Execute(string template, params object[] args) 中的大数据出错;

sql-server - 在姓氏搜索中添加撇号

sql - 数据库中所有列的逗号分隔列表(表名 | 列名...)

sql-server - 可以在实例级别配置数据库自动增长设置吗?

mysql - 尝试使用 SQL Server 导入导出向导将 MySQL 数据库迁移到 SQL Server 时发生崩溃

ruby-on-rails - 在 api Controller 中调用 create 时未定义的方法 {....}_url

ruby-on-rails - 使 View 、 Controller 和模型可以访问方法

sql-server - 在子查询中聚合按位或