IN and BETWEEN 子句

SELECT column1, SUM(column2)
FROM "list-of-tables"
WHERE column3 IN (list-of-values);

SELECT column1, SUM(column2)
FROM "list-of-tables"
WHERE column3 BETWEEN value1 AND value2;

IN 子句使用在列舉項目的使用上,也就是分別測試是否符合所列的值。

For example:

SELECT employeeid, lastname, salary
FROM employee_info
WHERE lastname IN ('Hernandez', 'Jones', 'Roberts', 'Ruiz');

條件為姓氏(astname)要符合 Hernandez, Jones, Roberts, or Ruiz 其中一個,才會被傳回。

IN運算元也可以使用 OR 的語法來取代。如下結果相同。

SELECT employeeid, lastname, salary
FROM employee_info
WHERE lastname = 'Hernandez' OR lastname = 'Jones' OR lastname = 'Roberts' OR lastname = 'Ruiz';

但使用 IN ,句子比較短也比較易懂。

你也可以使用 NOT IN 來去掉不要的記錄。

BETWEEN 運算元,使用在判斷是否存在兩個數值之間。

For example:

SELECT employeeid, age, lastname, salary
FROM employee_info
WHERE age BETWEEN 30 AND 40;

傳回年紀30歲到40歲之間的資料(含30及40歲者)

相同的,也可以使用以下語法來達到相同的結果。

SELECT employeeid, age, lastname, salary
FROM employee_info
WHERE age >= 30 AND age <= 40;

你也可使用 NOT BETWEEN 來濾掉中間值的資料。

Use these tables for the exercises
items_ordered
customers

練習題:

1) 使用 items_ordered 表,列出日期(date),物品( item)、價格(price),條件是價格介在 10.00 到 80.00 之間。

2) 使用customers 表,列出名( firstname)、城市(city)及州( state),條件為只列出 Arizona, Washington, Oklahoma, Colorado, or Hawaii 這幾個州的資料。

 

解答