指定哪些列在 FROM 子句中的資料表記錄會受到 SELECT、UPDATE 或 DELETE 陳述式的影響。
語法
SELECT fieldlist
FROM tableexpression WHERE criteria包含 WHERE 子句的 SELECT 陳述式具有下列部分:
部分 |
描述 |
fieldlist |
要擷取的欄位名稱,以及任何欄位名稱的別名、選取述詞 (ALL、DISTINCT、DISTINCTROW 或 TOP),或是其他 SELECT 陳述式選項。 |
tableexpression |
資料擷取來源的單一或多個資料表名稱。 |
criteria |
記錄必須滿足才能包含在查詢結果中的運算式。 |
備註
Microsoft Access 資料庫引擎會選取符合 WHERE 子句中所列出條件的記錄。 如果您沒有指定 WHERE 子句,您的查詢會傳回資料表中的所有列。 如果您在查詢中指定多個資料表,但並未包含 WHERE 子句或 JOIN 子句,您的查詢會產生資料表的笛卡耳積。
WHERE 是選擇性的;若要包含 WHERE,請放在 FROM 後方。 例如,您可以選取銷售部門中的所有員工 (WHERE Dept = 'Sales') 或年齡介於 18 到 30 的所有客戶 (WHERE Age Between 18 And 30)。
如果您不使用 JOIN 子句對多個資料表執行 SQL 加入作業,就無法更新產生的 Recordset 物件。
WHERE 與 HAVING 類似。 WHERE 會決定要選取哪些記錄。 同樣地,一旦記錄與 GROUP BY 分組後,HAVING 會決定要顯示哪些記錄。
請使用 WHERE 子句來刪除不要使用 GROUP BY 分組的記錄。
請使用不同的運算式來決定 SQL 陳述式要傳回哪些記錄。 例如,以下 SQL 陳述式會選取所有薪資超過 $21,000 的員工:
SELECT LastName, Salary FROM Employees WHERE Salary > 21000;
WHERE 子句最多可以包含 40 個由邏輯運算子 (例如 And 和 Or) 連結的運算式。
輸入包含空格或標點符號的欄位名稱時,請使用括號 ([ ]) 將名稱括住。 例如,客戶資訊資料表可能包含特定客戶的相關資訊:
SELECT [Customer’s Favorite Restarant]
指定準則引數時,即使您使用的 Microsoft Access 資料庫引擎並非美國版本,日期常值必須使用美國格式。 例如,1996 年 5 月 10 日的英國格式為 10/5/96,美國格式則為 5/10/96。 請務必使用數值符號 (#) 括住日期常值,如以下範例所示。
若要在英國資料庫中找出 1996 年 5 月 10 日的日期,您必須使用以下 SQL 陳述式:
SELECT * FROM Orders WHERE ShippedDate = #5/10/96#;
您也可以使用 DateValue 函數 (此為 Microsoft Windows® 建立的國際設定)。 例如,請使用以下代碼來代表美國:
SELECT * FROM Orders WHERE ShippedDate = DateValue('5/10/96');
並使用以下代碼來代表英國:
SELECT * FROM Orders WHERE ShippedDate = DateValue('10/5/96');
附註: 如果準則字串中參照的欄的類型為 GUID,準則運算式會使用不同的語法:
WHERE ReplicaID = {GUID {12345678-90AB-CDEF-1234-567890ABCDEF}}
請務必加入巢狀括號和連字號,如上所示。