У меня есть столбец XML в базе данных MS SQL Server 2012, который мне нужен для создания запроса для этого, который извлекает узлы в таблицу. Вот суть структуры XML:Частичные подстановочные знаки в столбцах XML SQL Server
<root>
<ProjectInfo>
<PrimaryContact>
<Name>
<Phone>
<Email>
</PrimaryContact>
<SecondaryContact>
<Name>
<Phone>
<Email>
</SecondaryContact>
<TechnicalContact>
<Name>
<Phone>
<Email>
</TechnicalContact>
<BillingContact>
<Name>
<Phone>
<Email>
</BillingContact>
<OtherStuff>
</root>
Я пытаюсь написать запрос, который получит это имя, телефон и электронная почта от каждого контактного узла. К сожалению, XPath /root/*Contact/
не является законным. Я знаю, что я могу написать запрос, который объединяет кучу UNION
s, чтобы объединить столбцы, но я чувствую, что есть, вероятно, более простой способ, которого я в настоящее время не знаю.
Есть ли способ использовать подстановочные знаки или какой-либо механизм OR-ing, который может быть использован для извлечения имени, телефона, & Отправляется от каждого из * контактных узлов?
Примечание: Я не могу использовать /root/*/Name
, потому что есть другие узлы, которые имеют имя как следующий внутренний узел, который не для контактов, а Телефон & Электронная почта являются необязательными.
Спасибо за подробный ответ! Это то, что я искал. Мне просто нужно применить это по всем документам, хранящимся в столбце XML, вместо одного статического документа. – JNYRanger