IN 和 BETWEEN 條件運算符
下面是IN條件運算符的SQL語句:
SELECT column1, SUM(column2)
FROM "list-of-tables"
WHERE column3 IN (list-of-values);
下面是BETWEEN條件運算符的SQL語句:
SELECT column1, SUM(column2)
FROM "list-of-tables"
WHERE column3 BETWEEN value1 AND value2;
實際上,IN條件運算符是一個設置成員測試運算符,也就是說,它用於測試是否一個數值處在IN關鍵字之後提供的數值之中。舉個例子如下:
SELECT employeeid, lastname, salary
FROM employee_info
WHERE lastname IN ('Hernandez', 'Jones', 'Roberts', 'Ruiz');
這條語句是從employee_info表中選擇lastname等於Hernandez、Jones、 Roberts或者 Ruiz名字之一的列employeeid、 lastname和 salary。如果它在其中就將返回行。
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條件運算符是用與測試一個數值是否處在BETWEEN關鍵字兩邊指定數值的中間,比如:
SELECT employeeid, age, lastname, salary
FROM employee_info
WHERE age BETWEEN 30 AND 40;
這條SQL語句是從employee_info表中選擇age處於30到40歲之間(包括30歲和40歲)的列employeeid、age、 lastname和salary。
這條語句同樣可以不用BETWEEN運算符,而使用混合條件來替代,例如:
SELECT employeeid, age, lastname, salary
FROM employee_info
WHERE age >= 30 AND age <= 40;
當然,你也可以類似於NOT IN的方法,使用NOT BETWEEN來排除一些數據。