I have one table which contains one JSON string column. How can I extract the information this into several different columns?
The json column values look something like this:
[{"Name":"Id1","Value":"11ea1111-cc22-3bb3-a33d-62159f192eba"},
{"Name":"Id2","Value":"b2222222-7777-00eb-0cc1-12345687bbbb"},
{"Name":"Id3","Value":"5d65d2c1-151e-41b4-af00-12345687aaaa"},
{"Name":"Id4","Value":"5bbd0da5-7698-4fa6-a893-9874654123aa"},
{"Name":"Quantity","Value":"10"},
{"Name":"Id5","Value":"d22222-8877-4558-ah32-789456123"}]
I would like to extract the information to the columns like in the picture:
I am using Microsoft SQL Server. I have tried to use JSON_VALUE
, but it only returns null
values.
2
Answers
Try this:
You can use the following to get the pairs values in a column format:
It will give you something like this:
but if you want to
PIVOT
the data, you will need dynamic T-SQL.A dynamic
PIVOT
using the parsed JSON content is another option:Test data:
T-SQL:
Result: