У меня есть вложенный файл JSON, который я пытаюсь использовать в качестве источника данных для отчетов. Я «сплющиваю» структуру, но не уверен, как оценивать данные братьев и сестер.SQL-сервер, получающий данные в вложенной структуре данных JSON
Образца данные:
{
"Cources": [{
"ID": 1,
"Name": "MAC100",
"Room": 100,
"TAID": 123,
"StudentsIDs": [
1, 2
]
}
],
"TAs": [{
"ID": 123,
"Name": "Joe",
"LName": "Smith"
}],
"Students": [{
"ID": 1,
"LName": "Clark"
}, {
"ID": 2,
"LName": "Peterson"
}]
}
SQL Server: глотаю файл данных и сглаживать данные для отчета:
SELECT Cource.ID,
Cource.Name as CName,
Cource.Room as CRoom,
CourceStudents.LName
FROM OPENROWSET (BULK 'C:\Data\file.json', SINGLE_CLOB) as jsonfile
CROSS APPLY OPENJSON(BulkColumn,'$[0]') WITH(
Cources nvarchar(max) AS JSON,
TAs nvarchar(max) AS JSON,
Students nvarchar(max) AS JSON
) AS [SampleData]
CROSS APPLY OPENJSON(Cources) WITH (
Room integer,
Name nvarchar(max),
StudentsIDs nvarchar(max) AS JSON
) as [Cources]
CROSS APPLY OPENJSON(Students) WITH (
ID integer,
LName nvarchar(max),
) as [Students]
CROSS APPLY OPENJSON(StudentsIDs) WITH (
**//??? how to get full data for the student from "Students" joining by the student ID ?**
) as [CourceStudents]
Я споткнулся о том, как получить все данные студента из "Студентов" в «StudentIDs «присоединение по идентификатору.
Что вы хотите, чтобы вывод выглядеть? Кроме того, имея строку чисел, подобную той, для которой студенты находятся в том, что Cource не является хорошим дизайном db. – dfundako
Эти данные не хранятся в БД. Я использую SQL Server исключительно для генерации отчета из потока данных о жизни. Я пытаюсь сгладить структуру JSON, чтобы она напоминала строки таблицы со всей информацией, например: Cources.ID, Students.ID, Students.LName – kaplievabell