У меня есть база данных, в которой есть таблица со столбцом XML.Данные XML имеют несколько дочерних узлов, которые выглядят примерно так:
<test>
<result id="1234">
<data elementname="Message">some error message</data>
<data elementname="Cat">Cat01</data>
<data elementname="Type">WARNING</data>
</result>
<result id="5678">
<data elementname="Message">some error message</data>
<data elementname="Cat">Cat01</data>
<data elementname="Type">WARNING</data>
</result>
</test>
Элемент Cat может иметь несколько различных значений.Я пытаюсь создать отчеты по этим данным, поэтому я хотел бы получить список всех категорий, которые будут использоваться в наших данных.Это мой запрос:
Select Id, XmlData.query('/test/result/data[@elementname = ''Cat''] ') AS Message
From Table
WHERE XmlData.exist('/test/result/data[@elementname = ''Cat'']') = 1
ORDER BY FriendlyName
Это правильно получает все строки в моей таблице с этим типом категоризации (в той же таблице будут другие результаты без этого элемента), но все категории объединеныв один столбец для каждой записи таблицы:
Id1, <data elementname="Cat">Cat01</data><data elementname="Cat">Cat01</data>
Id2, <data elementname="Cat">Cat01</data><data elementname="Cat">Cat01</data>
Я включил столбец Id, чтобы было легко увидеть, откуда поступают данные, основная проблема заключается в том, что я могу получить его только для объединения значенийдля каждой строки - мне нужно, чтобы у каждого из этих элементов данных была своя собственная строка, а затем, возможно, сделать Select Distinct для результата.
Есть ли способ, которым я могу это сделать?
Спасибо