指定使用 SQL 查詢選取的記錄。
語法
SELECT [ALL |DISTINCT |DISTINCTROW |[TOP n [PERCENT]]
FROM 表格包含這些述詞的 SELECT 語句包含下列部分:
部分 |
描述 |
ALL |
假設您未包含其中一個述詞。 Microsoft Access 資料庫引擎會選取符合 SQL 語句中條件的所有記錄。 下列兩個範例相等,並傳回 [員工] 數據表中的所有記錄:
|
DISTINCT |
省略在所選取欄位中包含重複資料的記錄。 若要包含在查詢結果中,SELECT 語句中所列每個欄位的值必須是唯一的。 例如,[員工] 數據表中列出的多位員工姓氏可能相同。 如果 [LastName] 字段中有兩筆記錄包含 Smith,下列 SQL 語句只會傳回一筆包含 Smith 的記錄:
如果您省略 DISTINCT,此查詢會傳回 Smith 記錄。 如果 SELECT 子句包含多個字段,所有欄位的值組合必須是唯一的,才能將指定的記錄包含在結果中。 使用 DISTINCT 的查詢輸出無法更新,也不會反映其他使用者所做的後續變更。 |
DISTINCTROW |
根據整筆重複的記錄來省略數據,而不只是省略重複欄位。 例如,您可以建立一個查詢來聯結 [客戶標識符] 字段上的 [客戶] 和 [訂單] 數據表。 [客戶] 數據表不包含重複的 [客戶標識符] 字段,但 [訂單] 數據表會這麼做,因為每個客戶可以有許多訂單。 下列 SQL 語句說明如何使用 DISTINCTROW 來產生至少有一筆訂單但不含這些訂單詳細數據的公司清單:
如果您省略 DISTINCTROW,此查詢會為每間訂單超過一筆的公司產生多個數據列。 DISTINCTROW 只有在您選取查詢中所使用之部分數據表的欄位時才會有效果,但並非全部。 如果您的查詢只包含一個數據表,或是從所有數據表輸出欄位,則會忽略 DISTINCTROW。 |
TOP n [PERCENT] |
傳回位於 ORDER BY 子句所指定範圍頂端或底端的特定記錄數目。 假設您想要 1994 班級的前 25 名學生名稱:
如果您不包含 ORDER BY 子句,查詢會從 [學生] 資料表傳回一組符合 WHERE 子句的任意 25 筆記錄。 TOP 述詞不會在等值之間選擇。 在上述範例中,如果第二十五和第二十六名的最高成績平均值相同,查詢會傳回 26 筆記錄。 您也可以使用 PERCENT 保留字傳回位於 ORDER BY 子句所指定範圍頂端或底端的特定記錄百分比。 假設您想要班級倒數 10%,而不是前 25 名的學生:
ASC 述詞會指定底端值的傳回。 TOP 之後的值必須是未簽署的整數。 TOP 不會影響查詢是否可更新。 |
table |
從其中擷取記錄之資料表的名稱。 |