7
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>')
Bir tür v madde elemanlarının özendirdiği için test etmek istiyorum = "3" VE bir değer v = "DEBIT". aşağıdaki gibi ben exist() fonksiyonunu kullanıyorum
:
SELECT *
FROM XmlTest
WHERE Data.exist('/data/item/type[@v=''3'']') = 1
AND Data.exist('/data/item/value[@v=''DEBIT'']') = 1
Ancak bu XMLid 1 ile satırları bana geri getirir ve 3.
kimse ben yapmak için gerekenleri değişiklik ana hatlarıyla Can benim NEREDE yalnızca node v değerinin 3 olduğu bir öğeye sahip olan kaydı ve değer düğümü v değeri "DEBIT" olan yan tümcesi döndürür? yani sadece XMLid 1
ileTeşekkür
+1 lanetlemek! Sadece birazcık araştırmadan sonra bu çözüm ile geldim .... sadece 6 dakika daha hızlı olduğunuzu bulmak için ..... ARGH! :-) İyi çağrı olsa! –
Mükemmel. Yardımınız için teşekkürler Matt & Marc_s. – doshea