여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. SQL - ANY 및 ALL 연산자
SQL – ANY 및 ALL 연산자
2년전 작성
1년전 수정

ANY / ALL

ANY 및 ALL 연산자를 사용하면 단일 열 값과 다른 값의 범위를 비교할 수 있다.

ANY

ANY 는 범위의 값 중 하나에 대해 연산이 참인 경우 조건이 참임을 의미한다.

결과로 부울 값을 반환한다.
하위 쿼리 값 중 하나라도 조건을 충족하는 경우 TRUE를 반환한다.

구문

operator는 표준 비교 연산자(=, <>, !=, >, >=, < 또는 <=)를 사용해야한다.

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
  (SELECT column_name
  FROM table_name
  WHERE condition);

데이터베이스 예시

제품 테이블
ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 – 12 oz bottles 19
3 Aniseed Syrup 1 2 12 – 550 ml bottles 10
4 Chef Anton’s Cajun Seasoning 2 2 48 – 6 oz jars 22
5 Chef Anton’s Gumbo Mix 2 2 36 boxes 21.35
6 Grandma’s Boysenberry Spread 3 2 12 – 8 oz jars 25
7 Uncle Bob’s Organic Dried Pears 3 7 12 – 1 lb pkgs. 30
8 Northwoods Cranberry Sauce 3 2 12 – 12 oz jars 40
9 Mishi Kobe Niku 4 6 18 – 500 g pkgs. 97
주문상세 테이블
OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40
6 10250 41 10
7 10250 51 35
8 10250 65 15
9 10251 22 6
10 10251 57 15
OrderDetails 테이블의 모든 레코드에 수량이 10과 같다는 것을 발견하면 ProductName을 나열

수량 열의 일부 값이 10이기 때문에 TRUE가 반환된다.

SELECT ProductName 
FROM Products
WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);
기본 예시

ProductName
Chais 
Chang 
Chef Anton’s Cajun Seasoning 
Uncle Bob’s Organic Dried Pears 
Konbu 
Tofu 
Pavlova 
Teatime Chocolate Biscuits 
Sir Rodney’s Scones 
Guaraná Fantástica 
NuNuCa Nuß-Nougat-Creme 
Gumbär Gummibärchen 
Thüringer Rostbratwurst 
Nord-Ost Matjeshering 
Sasquatch Ale 
Steeleye Stout 
Gravad lax 
Côte de Blaye 
Boston Crab Meat 
Jack’s New England Clam Chowder 
Singaporean Hokkien Fried Mee 
Perth Pasties 
Tourtière 
Pâté chinois 
Raclette Courdavault 
Tarte au sucre 
Louisiana Fiery Hot Pepper Sauce 
Scottish Longbreads 
Mozzarella di Giovanni 
Rhönbräu Klosterbier 
Original Frankfurter grüne Soße 

OrderDetails 테이블의 모든 레코드에 수량이 99보다 큰 것을 발견하면 ProductName을 나열

수량 열의 일부 값이 99보다 크기 때문에 TRUE가 반환된다.

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 99);
기본 예시

ProductName
Steeleye Stout 
Pâté chinois 

OrderDetails 테이블의 모든 레코드에 수량이 1000보다 큰 것을 발견하면 ProductName을 나열

수량 열에 1000보다 큰 값이 없기 때문에 FALSE가 반환된다.

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 1000);
기본 예시

ProductName

모든 제품 이름을 나열
SELECT ALL ProductName
FROM Products
WHERE TRUE;
기본 예시

ProductName
Chais 
Chang 
Aniseed Syrup 
Chef Anton’s Cajun Seasoning 
Chef Anton’s Gumbo Mix 
Grandma’s Boysenberry Spread 
Uncle Bob’s Organic Dried Pears 
Northwoods Cranberry Sauce 
Mishi Kobe Niku 
Ikura 
Queso Cabrales 
Queso Manchego La Pastora 
Konbu 
Tofu 
Genen Shouyu 
Pavlova 
Alice Mutton 
Carnarvon Tigers 
Teatime Chocolate Biscuits 
Sir Rodney’s Marmalade 
Sir Rodney’s Scones 
Gustaf’s Knäckebröd 
Tunnbröd 
Guaraná Fantástica 
NuNuCa Nuß-Nougat-Creme 
Gumbär Gummibärchen 
Schoggi Schokolade 
Rössle Sauerkraut 
Thüringer Rostbratwurst 
Nord-Ost Matjeshering 
Gorgonzola Telino 
Mascarpone Fabioli 
Geitost 
Sasquatch Ale 
Steeleye Stout 
Inlagd Sill 
Gravad lax 
Côte de Blaye 
Chartreuse verte 
Boston Crab Meat 
Jack’s New England Clam Chowder 
Singaporean Hokkien Fried Mee 
Ipoh Coffee 
Gula Malacca 
Røgede sild 
Spegesild 
Zaanse koeken 
Chocolade 
Maxilaku 
Valkoinen suklaa 
Manjimup Dried Apples 
Filo Mix 
Perth Pasties 
Tourtière 
Pâté chinois 
Gnocchi di nonna Alice 
Ravioli Angelo 
Escargots de Bourgogne 
Raclette Courdavault 
Camembert Pierrot 
Sirop d’érable 
Tarte au sucre 
Vegie-spread 
Wimmers gute Semmelknödel 
Louisiana Fiery Hot Pepper Sauce 
Louisiana Hot Spiced Okra 
Laughing Lumberjack Lager 
Scottish Longbreads 
Gudbrandsdalsost 
Outback Lager 
Fløtemysost 
Mozzarella di Giovanni 
Röd Kaviar 
Longlife Tofu 
Rhönbräu Klosterbier 
Lakkalikööri 
Original Frankfurter grüne Soße 

OrderDetails 테이블의 모든 레코드에 수량이 10과 같은 경우 ProductName을 나열

Quantity 열이 많은 다른 값을 가지고 있기 때문에 10의 값뿐만 아니라 FALSE를 반환한다.

SELECT ProductName
FROM Products
WHERE ProductID = ALL
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10);
기본 예시
ProductName


참고

Mingg`s Diary
밍구
밍구
공부 목적 블로그