SQL Server Столбец XML существует () запрос

Принятие у меня есть таблица SQL Server 2005 с xml столбцом, содержащим следующие значения:

CREATE TABLE XmlTest (
   XMLid int,
   Data xml)

INSERT XMLTest 
VALUES ( 1 , '<data><item><type v="1" /><value v="12.56" /></item><item><type     v="3" /><value v="DEBIT" /></item></data>' )

INSERT XMLTest 
VALUES ( 2 , '<data><item><type v="1" /><value v="99.22" /></item><item><type v="3" /><value v="CREDIT" /></item></data>' )

INSERT XMLTest 
VALUES ( 3 , '<data><item><type v="3" /><value v="12.56" /></item><item><type v="1" /><value v="DEBIT" /></item></data>' )

Я хочу протестировать на существование элементов объекта с типом v = "3" И значение v = "ДЕБЕТ".

Я использую существование () функция следующим образом:

SELECT *
FROM XmlTest
WHERE Data.exist('/data/item/type[@v=''3'']') = 1
AND Data.exist('/data/item/value[@v=''DEBIT'']') = 1

Однако это приносит мне задние ряды с XMLid 1 и 3.

Кто-либо может обрисовать в общих чертах то, что изменяется, я должен сделать к своему оператору Where для возврата только записи, которые имеют объект, где узел типа v значение равняется 3, и узел значения v значение является "ДЕБЕТОМ"? т.е. только запись с XMLid 1

Спасибо

7
задан Mark Amery 17 January 2014 в 19:09
поделиться