Как я могу получить SQL Server 2K8 R2, чтобы вернуть этот XML, не прибегая к режиму совместимости

StackOverflow https://stackoverflow.com/questions/3439007

  •  27-09-2019
  •  | 
  •  

Вопрос

Мы находимся в процессе модернизации нашего SQL Server до 2k8 R2, а выход A для XML AUTO Servere изменился.

Запрос выводит колонны из трех таблиц

Результаты возвращает три строки, которые каждый столбец идентичен стержнем последних двух столбцов из третьей таблицы. Результаты, используемые для поставки, как показано ниже

<element1 myval="Test">
    <element2 myotherval="atest">
         <element3 a="a"/>
         <element3 a="b"/>
         <element3 a="c" />
    </element2>
</element1>

Это не показывает

    <element1 myval="Test">
        <element2 myotherval="atest">
             <element3 a="a"/>
         </element2>
    </element1>
    <element1 myval="Test">
        <element2 myotherval="atest">
             <element3 a="B"/>
         </element2>
    </element1>
    <element1 myval="Test">
        <element2 myotherval="atest">
             <element3 a="C"/>
         </element2>
    </element1>

Я пытался использовать для Path XML, но он все еще возвращает 3 отдельных экземпляра элемента1, а не группировать данные.

Это было полезно?

Решение

Если вы хотите поддель, используя для PATH XML, вам придется писать подзапросы для каждого поддерева. Таким образом, в вашем случае у вас есть родительский выберите оператор для Element1, и один из столбцов - это подзапрос, который получает все необходимое в Element2 (который, в свою очередь, также может быть подзаимствованиями). Если вы используете подзапросы, и вы хотите, чтобы XML возвращается из тех, используйте

Для XML Path («Elementn»), введите

Или это потеряет код XML.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top