নিম্নলিখিত সহজ এক্সএমএল বিবেচনা করুন:
<xml>
<customer name="Max">
<email address="me@you.com" />
</customer>
<customer name="Erik">
<email address="erik@your-mom.com" />
</customer>
<customer name="Brent">
<email address="brentcom" />
</customer>
</xml>
আমি একটি তালিকা পেতে চান <Customer>
সিকোয়েন্স যেখানে address
এর অ্যাট্রিবিউট <email>
আইটেমটি নেই না একটি ধারণ @
।
সুতরাং, আমি দেখতে চাই যে আউটপুট:
<customer name="Brent">
<email address="brentcom" />
</customer>
এমসিভে :
DECLARE @x XML = '<xml>
<customer name="Max"><email address="me@you.com" /></customer>
<customer name="Erik"><email address="erik@your-mom.com" /></customer>
<customer name="Brent"><email address="brentcom" /></customer>
</xml>';
এই ক্যোয়ারী:
SELECT WithValidEmail = @x.query('/xml/customer/email[contains(@address, "@")]')
, WithInvalidEmail = @x.query('/xml/customer/email[contains(@address, "@")] = False');
রিটার্নস:
╔═══════════════════════════════════════╦══════════════════╗
║ WithValidEmail ║ WithInvalidEmail ║
╠═══════════════════════════════════════╬══════════════════╣
║ <email address="me@you.com" /> ║ ║
║ <email address="erik@your-mom.com" /> ║ false ║
╚═══════════════════════════════════════╩══════════════════╝
এই ক্যোয়ারী:
SELECT WithInValidEmail = @x.query('/xml/customer/email')
WHERE @x.exist('/xml/customer/email[contains(@address, "@")]') = 0;
রিটার্নস:
╔══════════════════╗
║ WithInValidEmail ║
╚══════════════════╝
(no results)
WHERE
উপরে ক্যোয়ারীতে দফা এক্সএমএল সমগ্র সেট দূর কারণ অন্তত একটি একক ক্রম বিদ্যমান যেখানে ইমেল ঠিকানায় একটি "@" চিহ্ন রয়েছে।