У меня есть поле базы данных, содержащий XML вложен, как это:SQL, чтобы соответствовать содержанию вложенного узла XML
<configuration>
<modules>
<genericMailer>
<moduleContent>
<data>
<sendMethod>Email</sendMethod>
Мой XML может содержать множество экземпляров <genericMailer>
элемента (и это подузлы). Я хочу найти все строки, где есть какие-либо экземпляры <genericMailer>
, где <sendMethod>
содержит «Почта».
я могу получить все значения для sendMethod
как это:
SELECT a.ApplicationId,
x.XmlCol.value('(moduleContent/data/sendMethod)[1]','VARCHAR(100)') AS SendMethod
FROM Applications a
CROSS APPLY a.AppConfig.nodes('/configuration/modules/genericMailer') x(XmlCol);
однако я не знаю, как искать только для сравнения значений. Что такое предложение WHERE, в котором я нуждаюсь?
Какую базу данных и какой версии? – Brad