SQL Server – возвращает дочерние узлы xml для столбца xml

Приведенная таблица T с столбцами:

ID UNIQUEIDENTIFIER CreatedDate DATETIME XmlData XML 

Где XmlData структурирована как:

 <application> <details firstname="first" lastname="last"> <statement>statement</statement> </details> <educationHistory> <education subject="subject1" /> <education subject="subject2" /> </educationHistory> <experienceHistory> <examiningExperienceHistory> <examiningExperience module="module1" /> <examiningExperience module="module2" /> </examiningExperienceHistory> <teachingExperienceHistory> <teachingExperience module="module1" /> <teachingExperience module="module2" /> </teachingExperienceHistory> </experienceHistory> </application> 

Мне нужно вернуть такой экстракт:

 ID Date FirstName LastName Education ExaminingExp TeachingExp ----------------------------------------------------------------------- 1 02-10-2012 First Last <xmlextract> <xmlextract> <xmlextract> 

Пока у меня есть:

 SELECT ID, CreatedDate [Date], XmlData.value('(application/details/@firstname)[1]','varchar(max)') [FirstName], XmlData.value('(application/details/@lastname)[1]','varchar(max)') [LastName] FROM T 

Я борюсь с тремя последними колонками. Для каждой записи мне нужно перечислить преподавание / изучение опыта и образование. Может ли кто-нибудь помочь?

Используйте .query для извлечения xml.

например

 select XmlData.query('/application/educationHistory/*'), XmlData.query('/application/experienceHistory/examiningExperienceHistory/*'), XmlData.query('/application/experienceHistory/teachingExperienceHistory/*') 

Попробуй это:

 SELECT ID, Created [DATE] XmlData.value('(application/details/@firstname)[1]','varchar(max)') [FirstName], XmlData.value('(application/details/@lastname)[1]','varchar(max)') [LastName], XmlData.query('/application/educationHistory'), XmlData.query('/application/experienceHistory/examiningExperienceHistory'), XmlData.query('/application/experienceHistory/teachingExperienceHistory') FROM T 
  • Для XML PATH результат SSMS усечен до 2034 символов
  • Получение значения Null для SQL xml при анализе элемента
  • лучший XML-формат для хранения в базе данных SQL Server
  • Как обновить значение атрибута xml в переменной xml с помощью t-sql?
  • Как получить узел, содержащий дочерний узел с заданным значением атрибута в документе XML с использованием SQL-сервера?
  • Разбить XML-файлы с помощью SQL Server в отдельные строки
  • SQL Использование OpenXML для извлечения нескольких элементов
  • Как вставить NULL в поле DATE SQL Server * из XML *
  • Динамическая замена значения узла в XML DML
  • Как вставить XML-файл в таблицу SQL
  • SQL 2008: получение строк с присоединением к полю XML?
  • Давайте будем гением компьютера.