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 
  • Обновите несколько записей в таблице с помощью одного SQL Server MERGE (из XML)
  • файл не может быть открыт. Код ошибки операционной системы (null)
  • XML-строка для xml неспособна переключить кодировку
  • Как выводить исходный XML-объект в XML-проекцию в SQL Server без введения дополнительного корневого элемента xml
  • Получить все элементы XML с тем же префиксом в SQL Server
  • Удалить корневые узлы XML из вывода по умолчанию из инструкции Sql Server
  • tsql заполнять тег xml, когда нет данных
  • Запрос строк XML для новых строк без XML
  • Вставка значения, которое выходит за пределы XML при использовании xQuery в хранимой процедуре в MS SQL Server
  • Запрос в XML с повторением данных с использованием SQL
  • Пользовательские поля с SQL Server 2008
  • Interesting Posts

    Простой SQL-запрос с выбором и группировкой по

    TSQL Xpath Изменить строку XML

    Фильтр столбцов столбцов SQL-сервера SQL на определенную дату или диапазон дат

    T-SQL, сравнение строк с ведущими цифрами с использованием параметров возвращает ложное срабатывание

    Как вернуть максимальное значение оператора select

    Невозможно использовать отчет Crystal Reports 2008 от Delphi 4 для нескольких баз данных

    Как вставить XML-данные в таблицу SQL Server?

    SQL Server: обновление нескольких записей из объединенных таблиц

    Удалите конечные нули после десятичных точек без усечения / аппроксимации значения на SQL-сервере

    Загрузите dll сторонней clr в SQL Server

    SQL Count запрос о том, сколько полей имеет другое поле со значением

    Плохая производительность на SP и простой запрос

    SQL Server: как обновить таблицу b, когда одна строка обновляется в таблице a?

    Что такое dbo в dbo.Sometable

    Когда использовать отрицательный индекс для подстроки

    Давайте будем гением компьютера.