本文是有關 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]
注意
使用星號時請特別留意。 如果稍後有人在資料來源中新增欄位,而您沒有為之新增欄位,則查詢結果可能不是您想要的。
選取不同的值
如果您知道您的陳述式將傳回重複的資料,但您只想查看不同的值,請在 DISTINCT 子句中使用 SELECT 關鍵字。 例如,如果某些客戶興趣使用相同的電話號碼, DISTINCT 請確保您只看到每個電話號碼一次:
SELECT DISTINCT [txtCustomerPhone]
為欄位或運算式使用替代名稱:AS 關鍵字
您可以在子句中使用SELECT關鍵字和欄位別名,變更 AS [資料工作表檢視] 中任何欄位顯示的標籤。 欄位別名是您指派給查詢中欄位的名稱,以讓結果更容易閱讀。 例如,如果您想要從名為 txtCustPhone的欄位選取資料,您可以使用欄位別名,讓結果更易於閱讀:
SELECT [txtCustPhone] AS [Customer Phone]
注意
當您在子句中使用 SELECT 運算式時,必須使用欄位別名。
使用運算式進行選取
有時候您會想要根據資料查看計算,或只傳回部分欄位值。 例如,假設您想要根據欄位中的 BirthDate 資料傳回客戶出生年份。 您的 SELECT 子句可能看起來像這樣:
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]
這個運算式使用 DatePart 函數及兩個引數: "yyyy" (常數) ,並 [BirthDate] (識別碼) 。
如果任何有效的運算式針對單一輸入值傳回單一值,您都可以使用該運算式做為欄位。