Last active
February 6, 2017 22:17
-
-
Save bertwagner/54b20d263ca21be05da888476a397457 to your computer and use it in GitHub Desktop.
SQL Server 2016 JSON's OPENJSON() Function Part 1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- See https://gist.github.com/bertwagner/356bf47732b9e35d2156daa943e049e9 for a formatted version of this JSON | |
DECLARE @garage nvarchar(1000) = N'{ "Cars": [{ "Make": "Volkswagen", "Model": { "Base": "Golf", "Trim": "GL" }, "Year": 2003, "PurchaseDate": "2006-10-05T00:00:00.000Z" }, { "Make": "Subaru", "Model": { "Base": "Impreza", "Trim": "Premium" }, "Year": 2016, "PurchaseDate": "2015-08-18T00:00:00.000Z" }] }' | |
SELECT * FROM OPENJSON(@garage, '$.Cars') -- Displaying the values of our "Cars" array. We additionally get the order of the JSON objects outputted in the "key" column and the JSON object datatype in the "type" column | |
/* Output: | |
key value type | |
------ ------------------------------------------------------------------------------------------------------------------------------------ ---- | |
0 { "Make": "Volkswagen", "Model": { "Base": "Golf", "Trim": "GL" }, "Year": 2003, "PurchaseDate": "2006-10-05T00:00:00.000Z" } 5 | |
1 { "Make": "Subaru", "Model": { "Base": "Impreza", "Trim": "Premium" }, "Year": 2016, "PurchaseDate": "2015-08-18T00:00:00.000Z" } 5 | |
*/ | |
SELECT * FROM OPENJSON(@garage, '$.Cars[0]') -- Specifying the first element in our JSON array. JSON arrays are zero-index based | |
/* Output: | |
key value type | |
---------------- ------------------------------------- ---- | |
Make Volkswagen 1 | |
Model { "Base": "Golf", "Trim": "GL" } 5 | |
Year 2003 2 | |
PurchaseDate 2006-10-05T00:00:00.000Z 1 | |
*/ | |
SELECT * FROM OPENJSON(@garage, '$.Cars[0].Model') -- Pulling the Model property from the first element in our Cars array | |
/* Output: | |
key value type | |
------- ------- ---- | |
Base Golf 1 | |
Trim GL 1 | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment