TSQL для xml-пути. Как включить элемент контейнера подзапроса, даже если подзапрос пуст?

Мой запрос на сборку XML включает подзапросы. Предполагается, что дочерние записи входят в элемент контейнера. XML должен иметь элемент контейнера, даже если нет дочерних записей.

Рассмотрим следующее. Элемент контейнера <Patients> должен существовать, даже если нет дочерних записей или проверка не выполняется.

 <Hospital> <Patients> <Patient></Patient> <Patient></Patient> <Patient></Patient> </Patients> </Hospital> 

Я пробовал несколько разных подходов, используя FOR XML PATH :

 select ( select PatientFields from PatientTable for xml path('Patient'), root('Patients'), elements xsinil, type ) for xml path('Hospital'), elements xsinil, type 

Вышеприведенный подход полностью исключает элемент <Patients> для пустого набора.

Тот, который ниже содержит тег, но добавляет атрибут xsi:nil="true" , что также приводит к сбою проверки.

 select ( select PatientFields from PatientTable for xml path('Patient'), elements xsinil, type ) Patients for xml path('Hospital'), elements xsinil, type 

Есть ли способ заставить элемент контейнера присутствовать?

 select ( select 'John Doe' where 1 = 0 for xml path('Patient'), type ) for xml path('Patients'), root('Hospital'), type 
  • SQL FOR XML PATH и COUNT
  • Создайте xml со значением атрибута в формате xml
  • Преобразование MSSQL 'FOR XML PATH' в Oracle
  • Добавить счет в корневые элементы, используя FOR XML PATH
  • XML-файл SQL Server с несколькими узлами с одинаковым именем
  • Как добавить атрибут в элемент-ориентированный запрос FOR XML PATH
  • Как FOR XML PATH ('') работает при конкатенации строк
  • Как сделать поворот в сочетании с FOR XML PATH в SQL Server?
  • Как использовать SQL FOR XML PATH, как я могу получить следующий отформатированный вывод XML?
  • SQL Server FOR XML PATH: установите инструкцию xml-декларации или обработки «xml-stylesheet» сверху
  • Строка: 35, ERR_MSG: синтаксический анализ XML: строка 1, символ 1088, незаконный квалифицированный символ имени
  • Interesting Posts

    Невозможно преобразовать строку dd-mm-yyyy dateformat в datetime в SQL Server

    Хранение DateTime (UTC) и сохранение DateTimeOffset

    Вычисление прошедшего времени между двумя датами со временем

    Как я могу вставить 10 миллионов записей в кратчайшие сроки?

    Visual Studio 2017 15.3 Проект базы данных Dockerize

    SQL Server для отображения всех столбцов в таблице, кроме первичного ключа и альтернативных ключей

    Как преобразовать Hex в String на сервере Sql

    выбор цифр справа от последнего нуля в SQL Server

    Совет по настройке центрального db с основными таблицами для веб-приложений

    как изменить приоритет идентификатора сеанса, подключенного к моему серверу?

    Безопасно ли использовать GetLastInsertId () для всей области на веб-страницах C # .NET с использованием среды WebMatrix?

    Проверка DATEDIFF в течение одной минуты на самом деле составляет от одной до двух минут

    SQL Server вставляет те же значения для некоторых столбцов

    использование значений параметров в хранимых процедурах

    SQL Server Mgmt Studio показывает «недопустимое имя столбца» при перечислении столбцов?

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