Reputation: 93
I have a data in SQL Server like this:
ID | Json_Data |
---|---|
1 | [{"Book_id":"6842","index":1,"type":"BOOK"},{"Book_id":"103735","index":2,"type":"BOOK"}, {"Book_id":"104253","index":3,"type":"BOOK_GIFT"}, {"Book_id":"83886","index":4,"type":"BOOK"}] |
2 | [{"Book_id":"688","index":1,"type":"BOOK"},{"Book_id":"548","index":2,"type":"BOOK"}] |
I need to parse this data to get something like this :
id | Value1 | Value2 | Value3 | Value4 |
---|---|---|---|---|
1 | {"Book_id":"6842","index":1,"type":"BOOK"} | {"Book_id":"103735","index":2,"type":"BOOK"} | {"Book_id":"104253","index":3,"type":"BOOK_GIFT"} | {"Book_id":"83886","index":4,"type":"BOOK"} |
2 | {"Book_id":"688","index":1,"type":"BOOK"} | {"Book_id":"548","index":2,"type":"BOOK"} | Null | Null |
Upvotes: 0
Views: 54
Reputation: 754408
You could try to use:
SELECT value
FROM dbo.YourTableNameHere
CROSS APPLY
OPENJSON(Json_Data, '$')
to get a row-based output - or if you can be sure you never have more than 4 entries, you could also use this:
SELECT
JSON_QUERY(Json_Data, '$[0]'),
JSON_QUERY(Json_Data, '$[1]'),
JSON_QUERY(Json_Data, '$[2]'),
JSON_QUERY(Json_Data, '$[3]')
FROM
dbo.YourTableNameHere
Upvotes: 1