SET Operators

אופרטור SET מאפשר לנו לבצע שילוב של תוצאות ממספר שאילתות.

מבנה השאילתא:

SELECT <query 1>
SET OPERATOR
SELECT <query 2>

UNION

שילוב של ערכים משתי שאילתות. מביא ערכים ייחודיים.

בדוגמא נקבל ערכים של ערים שמגיעים משתי הטבלאות. ערכים חופפים יגיעו רק פעם אחת.

SELECT city 
FROM employees 
UNION 
SELECT city 
FROM customers

UNION ALL

שילוב של ערכים משתי שאילתות. ערכים שנמצאים יותר מפעם אחת יופיעו גם בתוצאה יותר מפעם אחת.

בדוגמא נקבל ערכים של ערים משתי הטבלאות עם ערים כפולות במידה שיופיעו.

SELECT city 
FROM employees 
UNION ALL
SELECT city 
FROM customers

INTERSECT

שילוב של ערכי שאילתות כאשר יופיעו רק הערכים שמשותפים לשתי השאילתות.

בדוגמא נקבל רק את הערים שנמצאות גם בטבלת employees וגם בטבלת customers.

SELECT city 
FROM employees 
INTERSECT
SELECT city 
FROM customers

EXCEPT

בשימוש ב-EXCEPT נקבל את הערכים שנמצאים בשאילתא הראשונה, אבל לא בשנייה. מחסרים את תוצאות האילתא השנייה ממה שיצא בראשונה.

בדוגמא נקבל את הערים שנמצאים בטבלת employees. אם יש ערכים שמופיעים גם ב-customers הם יוסרו מהרשימה.

SELECT city 
FROM employees 
EXCEPT
SELECT city 
FROM customers

תרגול SET Operators – שאלות

  1. הצג את רשימת הערים מתוך טבלת עובדים
  2. הצג את רשימת הערים מתוך טבלת לקוחות
  3. הצג את השילוב הייחודי של הערים בטבלת לקוחות ועובדים
  4. הצג את כל הערים בטבלת לקוחות ועובדים כולל ערים אשר חוזרות על עצמן
  5. הצג את הערים המשותפות לטבלת לקוחות ועובדים
  6. הצג את הערים אשר מופיעות בטבלת עובדים ולא מופיעות בטבלת לקוחות

תרגול SET Operators – תשובות

-- ex1
select
    City
from Employees

-- ex2
select
    City
from Customers

-- ex3
select
    City
from Employees
Union
select
    City
from Customers

-- ex4
select
    City
from Employees
Union all
select
    City
from Customers

-- ex5
select
    City
from Employees
INTERSECT
select
    City
from Customers

-- ex6
select
    City
from Employees
EXCEPT
select
    City
from Customers