SQL IN operatori


baham ko'ring

SQL IN operatori

IN operatori WHERE bandida ishlatiladi: IN belgilangan ustun qiymati berilgan ro‘yxatdagi biror qiymatga mos kelishini tekshiradi.

IN operatori bir nechta OR shartlarining qisqartmasi vazifasini bajaradi va so‘rovlarni qisqaroq va o‘qilishi mumkin bo‘ladi.

Quyidagi SQL Germaniya, Fransiya yoki Buyuk Britaniyadagi barcha mijozlarni tanlash uchun IN operatoridan foydalanadi:

Misol

SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');
O‘zingiz sinab ko‘ring »

Quyidagi SQL Germaniya, Fransiya yoki Buyuk Britaniyadagi barcha mijozlarni tanlash uchun bir nechta OR shartidan foydalanadi (natija bir xil, lekin kod uzunroq):

Misol

SELECT * FROM Customers
WHERE Country = 'Germany' OR Country = 'France' OR Country = 'UK';

Sintaksis

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);


Demo ma’lumotlar bazasi

Quyida misollarda foydalanilgan Customers jadvalidan tanlanma keltirilgan:

CustomerID CustomerName ContactName Address City PostalCode Country
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden


NOT IN operatori

NOT IN operatoridan foydalanib, ro‘yxatdagi qiymatlarning birortasiga ham teng BO‘LMAGAN barcha yozuvlarni qaytarasiz.

Misol

FROM “Germaniya”, “Fransiya” yoki “Buyuk Britaniya” EMAS barcha mijozlarni qaytaring:

SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');
O‘zingiz sinab ko‘ring »

IN (SELECT)

Siz IN ni IN pastki so‘rovi bilan WHERE bandi bilan ham ishlatishingiz mumkin.

Quyi so‘rov yordamida siz barcha yozuvlarini asosiy so‘rovdagi qaytarishingiz mumkin, ichki so‘rov natijasidagi.

Quyidagi SQL "Orders" jadvalida buyurtmasi ham bor barcha mijozlarni qaytaradi:

Misol

SELECT * FROM Customers
WHERE CustomerID IN (SELECT CustomerID FROM Orders);
O‘zingiz sinab ko‘ring »

NOT IN (SELECT)

Yuqoridagi misol natijasi 74 ta yozuvni qaytardi, demak, hech qanday buyurtma bermagan 17 ta mijoz bor.

Keling, NOT IN operatoridan foydalanib, bu to‘g‘ri ekanligini tekshirib ko‘ramiz.

Quyidagi SQL "Orders" jadvalida buyurtmasi ham bor barcha mijozlarni qaytaradi:

Misol

SELECT * FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);
O‘zingiz sinab ko‘ring »



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!