TOP

SQL ANY ve ALL Operatörleri

SQL ANY ve ALL Açıklama

ANY ve ALL SQL ifadeleri, bir sütunun değeri ile diğer değerler aralığı arasında karşılaştırmalar yapmanızı sağlar.


SQL ANY Açıklama

Operatör ANY:

  • sonuç olarak bir boole değeri döndürür
  • Alt sorgu değerlerinin ANY'si koşulla eşleşiyorsa TRUE değerini döndürür
  • ANY, aralıktaki değerlerden herhangi biri için işlemin doğru olması durumunda koşulun doğru olacağı anlamına gelir.

    ANY Sözdizimi

    SELECT column_name(s)
    FROM table_name
    WHERE column_name operator ANY
      (SELECT column_name
       FROM table_name
       WHERE condition)
    
    Operatör standart bir karşılaştırma operatörü olmalıdır (=, <>, !=, >, >=, < veya <=).

    SQL ALL Açıklama

    Operatör ALL:

  • sonuç olarak bir boole değeri döndürür
  • ALL alt sorgu değerleri koşulla eşleşirse TRUE değerini döndürür
  • SELECT, WHERE ve HAVING operatörleriyle kullanılır
  • ALL, koşulun yalnızca işlemin aralıktaki tüm değerler için doğru olması durumunda doğru olacağı anlamına gelir.

    ALL SELECT ile birlikte sözdizimi

    SELECT ALL column_name(s)
    FROM table_name
    WHERE condition
    

    ALL WHERE veya HAVING ile birlikte sözdizimi

    SELECT column_name(s)
    FROM table_name
    WHERE column_name operator ALL
      (SELECT column_name
       FROM table_name
       WHERE condition)
    
    Operatör standart bir karşılaştırma operatörü olmalıdır (=, <>, !=, >, >=, < veya <=).

    Gösteri veritabanı

    Aşağıda "Northwind" veritabanının "Products" ("Ürünler") tablosundan bir örnek yer almaktadır:

    ProductIDProductNameSupplierIDCategoryIDUnitPrice
    1Chais1110 boxes x 20 bags18.00
    2Chang1124 - 12 oz bottles19.00
    3Aniseed Syrup1212 - 550 ml bottles10.00
    4Chef Anton's Cajun Seasoning2248 - 6 oz jars22.00
    5Chef Anton's Gumbo Mix2236 boxes21.35
    6Grandma's Boysenberry Spread3212 - 8 oz jars25.00
    7Uncle Bob's Organic Dried Pears3712 - 1 lb pkgs.30.00
    8Northwoods Cranberry Sauce3212 - 12 oz jars40.00
    9Mishi Kobe Niku4618 - 500 g pkgs.97.00
    10Ikura4812 - 200 ml jars31.00

    Ve "OrderDetails" ("Sipariş ayrıntıları") tablosundaki örnek:

    OrderDetailIDOrderIDProductIDQuantity
    1102481112
    2102484210
    310248725
    410249149
    5102495140
    6102504110
    7102505135
    8102506515
    910251226
    10102515715

    SQL ANY Örnekler

    Aşağıdaki SQL sorgusu, OrderDetails tablosunda Quantity değeri 10'a eşit olan herhangi bir (ANY) kaydı bulursa ProductName'yi listeler (Quantity sütununun bazı değerleri 10 olduğundan bu, TRUE değerini döndürür):

    Run SQLSELECT ProductName
    FROM Products
    WHERE ProductID = ANY
      (SELECT ProductID
       FROM OrderDetails
       WHERE Quantity = 10)
    

    Aşağıdaki SQL sorgusu, OrderDetails tablosunda miktarı 99'dan büyük olan herhangi bir (ANY) kaydı bulursa ProductName'yi listeler (Quantity sütunu 99'dan büyük bazı değerler içerdiğinden bu, TRUE değerini döndürür):

    Run SQLSELECT ProductName
    FROM Products
    WHERE ProductID = ANY
      (SELECT ProductID
       FROM OrderDetails
       WHERE Quantity > 99)
    

    Başka bir SQL ifadesi, OrderDetails tablosunda miktarı 1000'den büyük olan herhangi bir (ANY) kaydı bulursa ProductName'yi listeler (Quantity sütunu 1000'den büyük değerler içermediğinden bu, FALSE değerini döndürür):

    Run SQLSELECT ProductName
    FROM Products
    WHERE ProductID = ANY
      (SELECT ProductID
       FROM OrderDetails
       WHERE Quantity > 1000)
    

    SQL ALL Örnekler

    Aşağıdaki SQL deyimi tüm (ALL) ürün adlarını listeler:

    Run SQLSELECT ALL ProductName
    FROM Products
    WHERE TRUE
    

    Aşağıdaki SQL deyimi, OrderDetails tablosundaki tüm (ALL) kayıtların sayısı 10'a eşitse ProductName'yi listeler. Elbette bu, FALSE değerini döndürecektir çünkü Quantity sütunu birçok farklı değere sahiptir (yalnızca 10 değeri değil):

    Run SQLSELECT ProductName
    FROM Products
    WHERE ProductID = ALL
      (SELECT ProductID
       FROM OrderDetails
       WHERE Quantity = 10)