XQuery चयन और फ़िल्टरिंग
- पिछला पृष्ठ XQuery जोड़ना
- अगला पृष्ठ XQuery फ़ंक्शन
एलिमेंट्स को चुनने और फ़िल्टर करना
जैसा कि पहले के अध्यायों में देखा गया है, हम हमें पथ व्यक्ति या FLWOR व्यक्ति का उपयोग करके एलिमेंट्स को चुनने और फ़िल्टर करने के लिए करते हैं.
नीचे दिए गए FLWOR व्यक्ति को देखें:
for $x in doc("books.xml")/bookstore/book वहाँ $x/प्राइस>30 ऑर्डर बाइ $x/तीटिल return $x/title
- फॉर
- (वृद्धिपूर्ण) in व्यक्ति द्वारा प्रदान होने वाले हर एक प्रत्येक वस्तु को एक वेरियेबल के बांधता है
- लेट
- (वृद्धिपूर्ण)
- वहाँ
- (वृद्धिपूर्ण) एक सर्त को निर्धारित करने के लिए
- ऑर्डर बाइ
- (वृद्धिपूर्ण) परिणाम के अनुक्रम को निर्धारित करने के लिए
- रिटर्न
- परिणाम में बदले जाने वाले सामग्री को निर्धारित करता है
फॉर वाक्य
फॉर वाक्य वेरियेबल को in व्यक्ति द्वारा प्रदान होने वाले हर एक प्रत्येक वस्तु से बांधता है. फॉर वाक्य चक्र पैदा कर सकता है. एक ही FLWOR व्यक्ति में अनेक for वाक्य हो सकते हैं.
एक फॉर वाक्य में निर्दिष्ट बार चक्र करने के लिए आप इसे इस्तेमाल कर सकते हैं:कीवर्ड टू इस प्रकार:
फॉर $एक्स in (1 टू 5) return <test>{$x}</test>
परिणाम:
<test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test>
अट कीवर्ड सर्किट की गणना के लिए इस्तेमाल किया जा सकता है:
फॉर $एक्स अट $i in डॉक("books.xml")/bookstore/book/title रिटर्न <book>{$i}. {डेटा($एक्स)}</book>
परिणाम:
<book>1. रोज़नीय इटालियन</book> <book>2. हैरी पॉटर</book> <book>3. XQuery किक स्टार्ट</book> <book>4. एक्सएमएल सीखना</book>
फॉर वाक्य में भीअनेक in व्यक्ति की अनुमति हैकृपया , को इस्तेमाल करके हर इन व्यक्ति को विभाजित करें:
फॉर $एक्स इन (10,20), $वाई इन (100,200) रिटर्न <test>एक्स={$एक्स} और वाई={$वाई}</test>
परिणाम:
<test>एक्स=10 और वाई=100</test> <test>एक्स=10 और वाई=200</test> <test>एक्स=20 और वाई=100</test> <test>एक्स=20 और वाई=200</test>
लेट वाक्य
let सवाल के द्वारा वेरियेबल आबंटित किया जा सकता है, और बार-बार एक ही व्यक्तिवाक्य को दोहराने से बचा सकता है।let सवाल चक्र (iteration) पैदा नहीं करता।
let $x := (1 to 5) return <test>{$x}</test>
परिणाम:
<test>1 2 3 4 5</test>
where सवाल
where सवाल का उपयोग किया जाता है कि परिणाम के लिए एक या अधिक शर्त (क्रिटेरिया) निर्धारित करे।
where $x/price>30 and $x/price<100
order by सवाल
order by सवाल का उपयोग किया जाता है कि परिणाम की छांटने की क्रमवारी को निर्धारित करे।यहाँ, हम category और title के आधार पर परिणाम को क्रमवारी करना चाहते हैं:
for $x in doc("books.xml")/bookstore/book order by $x/@category, $x/title return $x/title
परिणाम:
<title lang="en">Harry Potter</title> <title lang="en">Everyday Italian</title> <title lang="en">Learning XML</title> <title lang="en">XQuery Kick Start</title>
return सवाल:
return सवाल के लिए वापस की गई सामग्री निर्धारित करता है。
for $x in doc("books.xml")/bookstore/book return $x/title
परिणाम:
<title lang="en">Everyday Italian</title> <title lang="en">Harry Potter</title> <title lang="en">XQuery Kick Start</title> <title lang="en">Learning XML</title>
- पिछला पृष्ठ XQuery जोड़ना
- अगला पृष्ठ XQuery फ़ंक्शन