08 / 100

BETWEEN

Diapazonni tekshirish

Kirish: ushbu darsda siz qiymat ma'lum bir diapazonga kirish-kirmasligini tekshirish uchun PostgreSQL BETWEEN operatoridan qanday foydalanishni o'rganasiz.


PostgreSQL BETWEEN operatori

BETWEEN operatori qiymat ma'lum bir diapazonga kirish-kirmasligini tekshiradi. BETWEEN operatorining sintaksisi:

query.sql
value BETWEEN low AND high;

Bu sintaksisda:

  • value — tekshiriladigan qiymat.
  • low — diapazonning eng past qiymati.
  • high — diapazonning eng yuqori qiymati.

BETWEEN operatori value low va high qiymatlar orasida bo'lsa (ikkala chegara ham kiritilgan holda) true, aks holda false qaytaradi. BETWEEN operatori >= va <= operatorlari kombinatsiyasiga ekvivalent:

query.sql
value >= low AND value <= high

PostgreSQL BETWEEN operatori namunasi

BETWEEN bandi bilan ishlash uchun inventories jadvalidan foydalanamiz:

query.sql
CREATE TABLE inventories (
  name VARCHAR(255),
  brand VARCHAR(50),
  quantity INT,
  price DECIMAL(19, 2)
);

INSERT INTO inventories (name, brand, quantity, price)
VALUES
  ('iPhone 14 Pro', 'Apple', 10, 999.99),
  ('Galaxy S23 Ultra', 'Samsung', 15, 1199.99),
  ('Pixel 7 Pro', 'Google', 8, 899.99),
  ('Xperia 1 IV', 'Sony', 7, 1299.99);

Quyidagi so'rov WHERE bandida BETWEEN operatoridan foydalanib, narxi 900 va 1200 orasida bo'lgan mahsulotlarni qaytaradi:

query.sql
SELECT
  name,
  price
FROM
  inventories
WHERE
  price BETWEEN 900 AND 1200;

Natija:

kod
 name             | price
------------------+---------
 iPhone 14 Pro    |  999.99
 Galaxy S23 Ultra | 1199.99

NOT BETWEEN operatori

Ma'lum diapazonga kirmaydigan qiymatlarni topish uchun NOT BETWEEN operatoridan foydalaniladi:

query.sql
value NOT BETWEEN low AND high

Bu sintaksis quyidagi ifodaga ekvivalent:

query.sql
value < low OR value > high

Masalan, narxi 900 dan past yoki 1200 dan yuqori bo'lgan mahsulotlarni topish uchun:

query.sql
SELECT
  name,
  price
FROM
  inventories
WHERE
  price NOT BETWEEN 900 AND 1200;

Natija:

kod
 name        | price
-------------+---------
 Pixel 7 Pro |  899.99
 Xperia 1 IV | 1299.99

Xulosa

  • Qiymat ma'lum bir diapazonga kirish-kirmasligini tekshirish uchun BETWEEN operatoridan foydalaning.
  • BETWEEN low AND high — >= low AND <= high ga ekvivalent.
  • Diapazondan tashqari qiymatlarni topish uchun NOT BETWEEN dan foydalaning.
QBilimingizni sinab ko'ring
1 / 4

1. BETWEEN operatori chegaralarni o'z ichiga oladimi?