Access SQL:SELECT 子句

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

本文是關於 Access SQL 系列的一部分。 它說明如何撰寫 SELECT 子句,並展示你可以使用的技巧範例。

如需 Access SQL 概觀,請參閱 Access SQL:基本概念、詞彙和語法一文。

本文內容

選取欄位:SELECT 子句

陳述 SELECT 通常以子 SELECT 句開頭。 使用子句指定包含查詢中所需資料的欄位。 你也可以用表達式代替欄位,或是附加欄位。 你甚至可以用另一個 SELECT 陳述當作欄位。 這稱為子查詢。

假設你想知道客戶的電話號碼。 如果儲存這些數字的欄位命名 txtCustomerPhone為 ,子 SELECT 句看起來如下:

SELECT [txtCustomerPhone]

您可以使用方括號括住名稱。 如果名稱中沒有空格或特殊字元,括號則是可選的。 如果有,你必須使用它們。

秘訣

包含空格的名稱會比較容易閱讀,並在您設計表單和報表時為您節省時間,但您撰寫 SQL 陳述式時可能會因此需要輸入更多字元。 當您在 Access 資料庫中命名物件時,請將這點一併考慮進去。

如果你的 SQL 陳述句有兩個或以上同名欄位,請在子 SELECT 句中加入每個欄位的資料來源名稱。 使用你在條款 FROM 中使用的同一個資料來源名稱。

選取所有欄位

當你想包含資料來源中的所有欄位時,可以在子句中逐 SELECT 一列出,或使用星號萬用字元符號來 (*) 。 當你使用星號時,Access 會判斷查詢執行時資料來源包含哪些欄位,並包含全部欄位。 這有助於在新增欄位加入資料來源時保持查詢的即時更新。

你可以在 SQL 語句中用星號搭配一個或多個資料來源。 如果你在多個資料來源中使用星號,請將資料來源名稱附上星號,讓 Access 能判斷要使用哪一個來源。

舉例來說,假設你想從表格中選取所有欄位 Orders ,但只選取表格中的 Contacts 電子郵件地址。 你的 SELECT 條款可能如下:

SELECT Orders.*, Contacts.[E-mail Address]

注意

使用星號時請特別留意。 如果後來有人在資料來源新增欄位,而你沒有事先規劃,查詢結果可能就不是你想要的。

選取不同的值

如果你知道你的語句會回傳重複資料,且只想看到不同的值,請在子SELECT句中使用關鍵字DISTINCT。 例如,如果某些客戶使用相同的電話號碼, DISTINCT 請確保每個電話號碼只看一次:

SELECT DISTINCT [txtCustomerPhone]

為欄位或運算式使用替代名稱:AS 關鍵字

你可以在 Datasheet 檢視中,使用 AS 關鍵字和欄位別名 SELECT 來更改任何欄位的標籤。 欄位別名是你在查詢中為欄位指派的名稱,目的是讓結果更易閱讀。 例如,如果你想從名為 txtCustPhone的欄位中選取資料,可以透過使用欄位別名來讓結果更易閱讀:

SELECT [txtCustPhone] AS [Customer Phone]

注意

當你在子句中使用表達式 SELECT 時,必須使用欄位別名。

使用運算式進行選取

有時你想根據資料查看計算,或只回傳欄位部分值。 舉例來說,假設你想根據現場資料 BirthDate 回傳客戶出生年份。 你的 SELECT 條款可能如下:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

此表達式使用 DatePart 函式及兩個參數: "yyyy" (常數) , ([BirthDate] 識別碼) 。

只要有效表達式對單一輸入值回傳單一值,就可以當作欄位。

回到頂端