SQL में, BETWEEN
ऑपरेटर आपको उन मानों की जांच करने की अनुमति देता है जो किसी दी गई सीमा के भीतर हैं।
BETWEEN
ऑपरेटर परीक्षण के लिए एक श्रेणी निर्दिष्ट करता है, और यह TRUE
देता है जब ऑपरेंड तुलना की सीमा के भीतर हो।
स्रोत तालिका
इस पृष्ठ पर उदाहरणों के लिए निम्न तालिका का उपयोग किया गया है।
SELECT * FROM Pets;
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +---------+-------------+-----------+-----------+------------+ (8 rows affected)
उदाहरण
BETWEEN
को प्रदर्शित करने के लिए यहां एक सरल उदाहरण दिया गया है ऑपरेटर।
SELECT * FROM Pets
WHERE DOB BETWEEN '2018-10-01' AND '2020-09-17';
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | +---------+-------------+-----------+-----------+------------+
इस उदाहरण में, हमने उन सभी पंक्तियों को लौटा दिया जहां DOB
कॉलम 2018-10-01
. के बीच था और 2020-09-17
.
इस मामले में, चार पंक्तियाँ उस मानदंड से मेल खाती थीं, और इसलिए, चार पंक्तियाँ वापस कर दी गईं।
बीच समावेशी है
BETWEEN
ऑपरेटर। समावेशी है। अर्थात्, इसमें श्रेणी के प्रत्येक छोर पर मान शामिल हैं। यदि आप पिछले उदाहरण में परिणामों को देखते हैं, तो आप देखेंगे कि दोनों सिरों पर ऐसे मान हैं जो हमारे द्वारा प्रदान की गई तिथियों से सटीक रूप से मेल खाते हैं।
यह ऑपरेटर के बराबर या उससे अधिक का उपयोग करने जैसा ही है (>=
) ऑपरेटर से कम या उसके बराबर के साथ संयुक्त (<=
)।
SELECT * FROM Pets
WHERE DOB >= '2018-10-01' AND DOB <= '2020-09-17';
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | +---------+-------------+-----------+-----------+------------+
इसे एक विशिष्ट श्रेणी बनाने के लिए, (>
. से अधिक का उपयोग करें ) ऑपरेटर और उससे कम (<
) ऑपरेटर।
SELECT * FROM Pets
WHERE DOB > '2018-10-01' AND DOB < '2020-09-17';
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 2 | 3 | 3 | Fetch | 2019-08-16 | | 4 | 3 | 3 | Wag | 2020-03-15 | +---------+-------------+-----------+-----------+------------+
यदि आपको BETWEEN
का उपयोग करना चाहिए ऑपरेटर, आपको तदनुसार सीमा को कम करना होगा।
इस तरह:
SELECT * FROM Pets
WHERE DOB BETWEEN '2018-10-02' AND '2020-09-16';
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 2 | 3 | 3 | Fetch | 2019-08-16 | | 4 | 3 | 3 | Wag | 2020-03-15 | +---------+-------------+-----------+-----------+------------+
संख्यात्मक मानों का उपयोग करना
पिछले उदाहरण तिथियों का उपयोग करते हैं, लेकिन आप केवल तिथियों तक ही सीमित नहीं हैं। यहां एक उदाहरण दिया गया है जो संख्यात्मक मानों का उपयोग करता है।
SELECT * FROM Pets
WHERE OwnerId BETWEEN 2 AND 3;
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 7 | 3 | 2 | Bark | NULL | +---------+-------------+-----------+-----------+------------+
स्ट्रिंग मानों का उपयोग करना
हम इसे एक कदम आगे ले जा सकते हैं और BETWEEN
. का उपयोग कर सकते हैं दो स्ट्रिंग कॉलम की तुलना करने के लिए।
SELECT * FROM Pets
WHERE PetName BETWEEN 'Meow' AND 'Wag'
ORDER BY PetName;
परिणाम:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 8 | 2 | 4 | Meow | NULL | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 4 | 3 | 3 | Wag | 2020-03-15 | +---------+-------------+-----------+-----------+------------+
हालांकि आपको सावधान रहने की जरूरत है। आप सोच सकते हैं कि हम सिर्फ शुरुआती अक्षर का इस्तेमाल इस तरह कर सकते हैं:
SELECT * FROM Pets
WHERE PetName BETWEEN 'M' AND 'W'
ORDER BY PetName;
लेकिन इसका परिणाम यह होगा:
+---------+-------------+-----------+-----------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | |---------+-------------+-----------+-----------+------------| | 8 | 2 | 4 | Meow | NULL | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 5 | 1 | 1 | Tweet | 2020-11-28 | +---------+-------------+-----------+-----------+------------+
इसमें Wag
शामिल नहीं था पिछली क्वेरी की तरह। ऐसा इसलिए है क्योंकि BETWEEN
पूरे तार को देखता है। उस स्थिति में, Wag
W
. से बड़ा है , और इसलिए इसे परिणामों में शामिल नहीं किया गया है।