簡體   English   中英

如何從Sql Server 2016表列中讀取JSON文本

[英]How to read JSON text from Sql Server 2016 table column

我在Sql Server中有以下JSon數據。

{
 "PartnerName": null,
 "PartnerCurrencyCode": "UAD",
 "PricingConditions": [
  {
    "PricingConditionId": 659853,
    "ConditionTypeCode": "ABCD",
    "ConcessionItemTypeCode": "ABC",
    "PriceLevel": null
  }
],
"CurrencyMultiplier": 0
}

預期結果是:

PartnerName  PartnerCode    PartnerCurrencyCode  PricingConditionId
NULL         NULL           UAD                   659853

我已經了解到Sql Server 2016具有讀取JSON數據的功能,並嘗試了以下查詢。

查詢1:

SELECT * FROM OPENJSON(@json, '$')

查詢2:

SELECT *  
FROM OPENJSON(@json)  
WITH (PartnerName NVARCHAR(50) '$.PartnerName',
     PartnerCode nvarchar(50) '$.PartnerCode',
     PartnerCurrencyCode nvarchar(50) '$.PartnerCurrencyCode',
     PricingConditionId nvarchar(50)   '$.PricingConditions.PricingConditionId')

查詢2結果:

PartnerName  PartnerCode    PartnerCurrencyCode  PricingConditionId
NULL         NULL           UAD                  NULL

我期望“ PricingConditionId”值為-659853

試試這個查詢:

SELECT PartnerName,
       PartnerCode,
       PartnerCurrencyCode,
       [PricingConditions[0]].PricingConditionId AS ProductID1
FROM OPENJSON (@json) 
WITH (
    PartnerName NVARCHAR(50),
    PartnerCode NVARCHAR(50),
    PartnerCurrencyCode NVARCHAR(50),
    [PricingConditions[0]].PricingConditionId NVARCHAR(50)
) AS Partners

這是一篇很棒的文章鏈接,其中討論了解決問題的幾種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM