SQL Any & All

2023. 4. 8. 10:39·📦 Database/SQL

💡 Any & All

Any & All 함수는 주로 서브쿼리에서 사용하는 다중 행 연산자이다.

Any는 조건을 만족하는 값이 하나라도 있다면 결과를 반환한다.

All은 모든 조건을 만족하는 결과를 리턴한다.


Sample Table


Products 테이블

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

OrderDetails 테이블

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 테이블에서 Quantity가 10인 레코드를 찾으면 ProductName을 반환한다.

True 반환

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

OrderDetails 테이블에서 Quantity가 99보다 큰 레코드가 있으면 ProductName을 반환한다.

True 반환

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

OrderDetails 테이블에서 Quantity가 1000보다 큰 레코드가 있으면 ProductName 반환한다.

False 반환

SELECT ProductName
FROM Products
WHERE ProductId = ANY(
    SELECT ProductId 
    FROM OrderDetails 
    WHERE Quantity > 1000);

OrderDetails 테이블에 있는 모든 레코드의 Quantity가 10인 경우 ProductName을 반환한다.

제품의 수량이 전부 10이 아니므로 False 반환

SELECT ProductName
FROM Products
WHERE ProductId = ALL(
    SELECT ProductId 
    FROM OrderDetails 
    WHERE Quantity = 10);
저작자표시 (새창열림)

'📦 Database > SQL' 카테고리의 다른 글

SQL Case  (0) 2023.04.09
SQL Select Into & Insert Into Select  (0) 2023.04.09
SQL Exists  (0) 2023.04.08
SQL Having  (0) 2023.04.08
SQL Group By  (0) 2023.04.08
'📦 Database/SQL' 카테고리의 다른 글
  • SQL Case
  • SQL Select Into & Insert Into Select
  • SQL Exists
  • SQL Having
신건우
신건우
조용한 개발자
  • 신건우
    우주먼지
    신건우
  • 전체
    오늘
    어제
    • 분류 전체보기 (422)
      • 📘 Frontend (71)
        • Markup (1)
        • Style Sheet (2)
        • Dart (8)
        • Javascript (12)
        • TypeScript (1)
        • Vue (36)
        • React (2)
        • Flutter (9)
      • 📘 Backend (143)
        • Java (34)
        • Concurrency (19)
        • Reflection (1)
        • Kotlin (29)
        • Python (1)
        • Spring (42)
        • Spring Cloud (5)
        • Message Broker (5)
        • Streaming (2)
        • 기능 개발 (5)
      • 💻 Server (6)
        • Linux (6)
      • ❌ Error Handling (11)
      • 📦 Database (62)
        • SQL (31)
        • NoSQL (2)
        • JPQL (9)
        • QueryDSL (12)
        • Basic (4)
        • Firebase (4)
      • ⚙️ Ops (57)
        • CS (6)
        • AWS (9)
        • Docker (8)
        • Kubernetes (13)
        • MSA (1)
        • CI & CD (20)
      • 📚 Data Architect (48)
        • Data Structure (10)
        • Algorithm (8)
        • Programmers (17)
        • BaekJoon (5)
        • CodeUp (4)
        • Design Pattern (4)
        • AI (0)
      • ⚒️ Management & Tool (8)
        • Git (7)
        • IntelliJ (1)
      • 📄 Document (10)
        • Project 설계 (6)
        • Server Migration (3)
      • 📄 책읽기 (2)
        • 시작하세요! 도커 & 쿠버네티스 (2)
      • 🎮 Game (4)
        • Stardew Vally (1)
        • Path of Exile (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      React #Markdown
      Lock #Thread #Concurrency
      GStreamer #Pipeline
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.0
    신건우
    SQL Any & All
    상단으로

    티스토리툴바