WHERE 子句

指定哪些列在 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 個由邏輯運算子 (例如 AndOr) 連結的運算式。

輸入包含空格或標點符號的欄位名稱時,請使用括號 ([ ]) 將名稱括住。例如,客戶資訊資料表可能包含特定客戶的相關資訊:

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}}

請務必加入巢狀括號和連字號,如上所示。



擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×