Skip to main content
The 2024 Developer Survey results are live! See the results
1 of 2
Zhorov
  • 29.6k
  • 6
  • 30
  • 54

You need an OPENJSON() call with the appropriate path to access the nested $.source_info.help_info.details JSON array and an additional APPLY operator:

Sample data:

SELECT *
INTO Data
FROM (VALUES
   (1, 45745, '{"source":"XYZ",
     "source_info":{
         "type":"need_help",
         "help_info":{     
                "questions":50, 
                "details":[{"floatv":0.42,"name":"Tom"},{"floatv":1.08,"name":"Dick"},{"floatv":1.2,"name":"Harry"}]}}}')
) v (UID, ID, JSON)

Statement:

SELECT d.ID, j.NAME
FROM Data d
CROSS APPLY OPENJSON(d.JSON, '$.source_info.help_info.details') WITH (
   NAME varchar(100) '$.name'
) j

Result:

ID NAME
45745 Tom
45745 Dick
45745 Harry
Zhorov
  • 29.6k
  • 6
  • 30
  • 54