![](/img/trans.png)
[英]Getting the Keys and Values from a JSON array in SQL Server 2016
[英]Return values from json data in SQL Server 2016
在SQL Server 2016中,如何使用示例代碼返回“ PageSize”,“ Total”和“ NumberOfPages”值? 我沒有數據的列標題。
我想看看:
碼:
DECLARE @jsonData NVARCHAR(MAX)
SET @jsonData = N'{
"PageSize": 500,
"PageNumber": 2,
"Total": 994,
"Items": [
{
"Id": 23004801096147,
"StatusName": "Open",
"CompanyName": "Microsoft",
"JobTitle": "Project Manager"
},
{
"Id": 23004801096147,
"StatusName": "Closed",
"CompanyName": "Salesforce",
"JobTitle": "Marketing Manager"
}
],
"NumberOfPages": 1024
}'
-嘗試1
SELECT
JSON_VALUE(fh.value, '$.PageSize') AS [PageSize],
JSON_VALUE(fh.value, '$.Total') AS [Total],
JSON_VALUE(fh.value, '$.NumberOfPages') AS [NumberOfPages]
FROM OPENJSON(@jsonData, '$.FileHeader') as fh
-嘗試2
SELECT 'PageSize' as 'PageSize', 'Total' as 'Total', 'NumberOfPages' as
'NumberOfPages'
FROM OPENJSON(@jsonData, '$.FileHeader') as fh
-嘗試3
SELECT 'PageSize' as 'PageSize', 'Total' as 'Total', 'NumberOfPages' as
'NumberOfPages'
FROM OPENJSON(@jsonData) as fh
-嘗試4
SELECT 'PageSize' as 'PageSize', 'Total' as 'Total', 'NumberOfPages' as
'NumberOfPages'
FROM OPENJSON(@jsonData)
SQL Server 2016+ JSON: https ://docs.microsoft.com/zh-cn/sql/relational-databases/json/json-data-sql-server ? view = sql-server-2017
這是使用您的數據的示例:
DECLARE @jsonData NVARCHAR(MAX)
SET @jsonData = N'{
"PageSize": 500,
"PageNumber": 2,
"Total": 994,
"Items": [
{
"Id": 23004801096147,
"StatusName": "Open",
"CompanyName": "Microsoft",
"JobTitle": "Project Manager"
},
{
"Id": 23004801096147,
"StatusName": "Closed",
"CompanyName": "Salesforce",
"JobTitle": "Marketing Manager"
}
],
"NumberOfPages": 1024
}'
--Using OPENJSON and "WITH"
SELECT
[PageSize]
, [PageNumber]
, [Total]
, [NumberOfPages]
FROM OPENJSON(@jsonData)
WITH(
[PageSize] BIGINT '$.PageSize'
,[PageNumber] BIGINT '$.PageNumber'
,[Total] BIGINT '$.Total'
,[NumberOfPages] BIGINT '$.NumberOfPages'
)
--This is how you could accomplish the same with JSON_VALUE
SELECT
JSON_VALUE(@jsonData, '$.PageSize') AS [PageSize],
JSON_VALUE(@jsonData, '$.PageNumber') AS [PageNumber],
JSON_VALUE(@jsonData, '$.Total') AS [Total],
JSON_VALUE(@jsonData, '$.NumberOfPages') AS [NumberOfPages]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.