Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

指定哪些列在 FROM 子句中的資料表記錄會受到 SELECT、UPDATE 或 DELETE 陳述式的影響。

語法

SELECT fieldlistFROM tableexpressionWHERE 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}}

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

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。