iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 27
0

介紹

這篇我們將簡單介紹透過 OPENJSON 函式將 json 內容轉換成資料欄位方式呈現。首先我們先建立以下字串內容,並透過OPENJSON印出結果:

    DECLARE @jsonInfo NVARCHAR(MAX);
    
    SET @jsonInfo = N'{
        "Id":1,
        "Name":"Duran",
        "Salary":1000,
        "Role":[
          "developer",
          "QA"
         ]
    }'
    
    SELECT *
    FROM OPENJSON(@jsonInfo)

您能看見OPENJSON 將 key-value 分離出來,依據不同資料型態進行分類(文字1、數字2...依此類推)。揪下來,我們透過 with 語法,將資料轉換成資料表格式呈現。其中若不想進行轉換,可以透過AS JSON直接儲存JSON資料,但記得其格式一定要為 nvarchar(MAX)。

    SELECT *
    FROM OPENJSON(@jsonInfo)
    WITH (
        Id INT '$.Id',
        Name nvarchar(20) '$.Name',
        Salary INT '$.Salary',
        Role  nvarchar(MAX)  AS JSON 
    )


參考資料

https://docs.microsoft.com/zh-tw/sql/t-sql/functions/openjson-transact-sql


上一篇
26. 透過JSON_MODIFY 函式來更新 JSON 文字中內容值
下一篇
28. Drop if Exists
系列文
SQL Server 學習日誌30

尚未有邦友留言

立即登入留言