SQL IN operatori
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!
