SQL सर्वर BETWEEN
ऑपरेटर आपको अपने प्रश्नों में मूल्यों की एक श्रृंखला के बीच परीक्षण करने की अनुमति देता है। उदाहरण के लिए, आप परीक्षण कर सकते हैं कि मान दो संख्याओं के बीच है।
BETWEEN
ऑपरेटर समावेशी है, जिसका अर्थ है कि इसमें वे मान शामिल हैं जिन्हें आप सीमा के भीतर निर्दिष्ट करते हैं। अर्थात्, इसमें वे मान शामिल हैं जो निम्न मान से अधिक या उसके बराबर हैं, और वे मान जो उच्च मान से कम या उसके बराबर हैं। इसलिए यह >=
. का उपयोग करने जैसा है और <=
।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT Name, Population
FROM city
WHERE Population BETWEEN 22000 AND 24000
ORDER BY Population ASC;
परिणाम:
+--------------+--------------+ | Name | Population | |--------------+--------------| | Thimphu | 22000 | | Weno | 22000 | | Nuku´alofa | 22400 | | Douglas | 23487 | | Saint John´s | 24000 | +--------------+--------------+
जैसा कि बताया गया है, BETWEEN
समावेशी है, इसलिए परिणाम में वे दो मान शामिल हैं जिन्हें मैंने AND
के बाएँ और दाएँ निर्दिष्ट किया है तर्क।
यह निम्नलिखित करने के बराबर है।
SELECT Name, Population
FROM city
WHERE Population >= 22000 AND Population <= 24000
ORDER BY Population ASC;
परिणाम:
+--------------+--------------+ | Name | Population | |--------------+--------------| | Thimphu | 22000 | | Weno | 22000 | | Nuku´alofa | 22400 | | Douglas | 23487 | | Saint John´s | 24000 | +--------------+--------------+
NOT BETWEEN
आप NOT
का उपयोग कर सकते हैं यह निर्दिष्ट करने के लिए तर्क कि मान नहीं होना चाहिए निर्दिष्ट दो मानों के बीच हो।
SELECT Name, Population
FROM city
WHERE Population NOT BETWEEN 300 AND 9696300
ORDER BY Population ASC;
परिणाम:
+-----------------+--------------+ | Name | Population | |-----------------+--------------| | Adamstown | 42 | | West Island | 167 | | São Paulo | 9968485 | | Seoul | 9981619 | | Mumbai (Bombay) | 10500000 | +-----------------+--------------+
इस बार हमें वही परिणाम मिलता है जो हम चाहते हैं यदि हम ऑपरेटरों से कम और अधिक का उपयोग करते हैं।
SELECT Name, Population
FROM city
WHERE Population < 300 OR Population > 9696300
ORDER BY Population ASC;
परिणाम:
+-----------------+--------------+ | Name | Population | |-----------------+--------------| | Adamstown | 42 | | West Island | 167 | | São Paulo | 9968485 | | Seoul | 9981619 | | Mumbai (Bombay) | 10500000 | +-----------------+--------------+
NOT BETWEEN
. का उपयोग करते समय , यदि हम परीक्षण में निर्दिष्ट मानों को शामिल करना चाहते हैं, तो हमें मूल्यों को बढ़ाना/घटाना होगा।
SELECT Name, Population
FROM city
WHERE Population NOT BETWEEN 301 AND 9696299
ORDER BY Population ASC;
परिणाम:
+-----------------+--------------+ | Name | Population | |-----------------+--------------| | Adamstown | 42 | | West Island | 167 | | Fakaofo | 300 | | Shanghai | 9696300 | | São Paulo | 9968485 | | Seoul | 9981619 | | Mumbai (Bombay) | 10500000 | +-----------------+--------------+
इस बार हम देखते हैं कि हमारे परिणाम सेट में दो शहर जुड़ गए हैं; 300 की आबादी वाला फ़काओफ़ो और 9696300 की आबादी वाला शंघाई।
वैसे, यह सब पुराना नमूना डेटा है इसलिए जनसंख्या के आंकड़े शायद कई मामलों में वास्तविक वास्तविकता को नहीं दर्शाते हैं।
यहां बताया गया है कि हम इसे इससे कम या इसके बराबर और इससे अधिक या इसके बराबर ऑपरेटरों के साथ कैसे करेंगे।
SELECT Name, Population
FROM city
WHERE Population <= 300 OR Population >= 9696300
ORDER BY Population ASC;
परिणाम:
+-----------------+--------------+ | Name | Population | |-----------------+--------------| | Adamstown | 42 | | West Island | 167 | | Fakaofo | 300 | | Shanghai | 9696300 | | São Paulo | 9968485 | | Seoul | 9981619 | | Mumbai (Bombay) | 10500000 | +-----------------+--------------+
BETWEEN
तिथियों के साथ
जब आप BETWEEN
. का उपयोग करते हैं दिनांक पर ऑपरेटर (जैसे डेटाटाइम , डेटाटाइम2 , या डेटाटाइमऑफ़सेट मान), YYYYMMDD
. प्रारूप का उपयोग करना सबसे अच्छा है किसी भी स्थानीय समस्या से बचने के लिए (उदाहरण के लिए, यदि उपयोगकर्ता ने अपने सत्र के लिए दिनांक स्वरूप बदल दिया है)।
साथ ही, यदि आप समय घटक प्रदान नहीं करते हैं, तो यह डिफ़ॉल्ट रूप से 12:00 पूर्वाह्न पर होता है
इसलिए, निम्न क्वेरी 12:00 पूर्वाह्न के बाद समय भाग वाली कोई भी पंक्ति नहीं लौटाएगी। 1973-12-31 को।
SELECT * FROM Artists
WHERE ActiveFrom BETWEEN '20010101' AND '20011231';
आप या तो अपने दिनांक मानों को तदनुसार समायोजित कर सकते हैं, या आप इससे अधिक या इसके बराबर और उससे कम ऑपरेटरों का उपयोग करना पसंद कर सकते हैं।
इस तरह:
SELECT * FROM Artists
WHERE ActiveFrom >= '20010101' AND ActiveFrom < '20011231';