Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.
ALL、DISTINCT、DISTINCTROW、TOP 述詞

指定使用 SQL 查詢選取的記錄。

語法

SELECT [ALL |DISTINCT |DISTINCTROW |[TOP n [PERCENT]]
FROM 表格

包含這些述詞的 SELECT 語句包含下列部分:

部分

描述

ALL

假設您未包含其中一個述詞。 Microsoft Access 資料庫引擎會選取符合 SQL 語句中條件的所有記錄。 下列兩個範例相等,並傳回 [員工] 數據表中的所有記錄:

SELECT ALL *
FROM Employees
ORDER BY EmployeeID;
SELECT *
FROM Employees
ORDER BY EmployeeID;

DISTINCT

省略在所選取欄位中包含重複資料的記錄。 若要包含在查詢結果中,SELECT 語句中所列每個欄位的值必須是唯一的。 例如,[員工] 數據表中列出的多位員工姓氏可能相同。 如果 [LastName] 字段中有兩筆記錄包含 Smith,下列 SQL 語句只會傳回一筆包含 Smith 的記錄:

SELECT DISTINCT LastName
FROM Employees;

如果您省略 DISTINCT,此查詢會傳回 Smith 記錄。

如果 SELECT 子句包含多個字段,所有欄位的值組合必須是唯一的,才能將指定的記錄包含在結果中。

使用 DISTINCT 的查詢輸出無法更新,也不會反映其他使用者所做的後續變更。

DISTINCTROW

根據整筆重複的記錄來省略數據,而不只是省略重複欄位。 例如,您可以建立一個查詢來聯結 [客戶標識符] 字段上的 [客戶] 和 [訂單] 數據表。 [客戶] 數據表不包含重複的 [客戶標識符] 字段,但 [訂單] 數據表會這麼做,因為每個客戶可以有許多訂單。 下列 SQL 語句說明如何使用 DISTINCTROW 來產生至少有一筆訂單但不含這些訂單詳細數據的公司清單:

SELECT DISTINCTROW CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY CompanyName;

如果您省略 DISTINCTROW,此查詢會為每間訂單超過一筆的公司產生多個數據列。

DISTINCTROW 只有在您選取查詢中所使用之部分數據表的欄位時才會有效果,但並非全部。 如果您的查詢只包含一個數據表,或是從所有數據表輸出欄位,則會忽略 DISTINCTROW。

TOP n [PERCENT]

傳回位於 ORDER BY 子句所指定範圍頂端或底端的特定記錄數目。 假設您想要 1994 班級的前 25 名學生名稱:

SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage DESC;

如果您不包含 ORDER BY 子句,查詢會從 [學生] 資料表傳回一組符合 WHERE 子句的任意 25 筆記錄。

TOP 述詞不會在等值之間選擇。 在上述範例中,如果第二十五和第二十六名的最高成績平均值相同,查詢會傳回 26 筆記錄。

您也可以使用 PERCENT 保留字傳回位於 ORDER BY 子句所指定範圍頂端或底端的特定記錄百分比。 假設您想要班級倒數 10%,而不是前 25 名的學生:

SELECT TOP 10 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage ASC;

ASC 述詞會指定底端值的傳回。 TOP 之後的值必須是未簽署的整數。

TOP 不會影響查詢是否可更新。

table

從其中擷取記錄之資料表的名稱。



Need more help?

Want more options?

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

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

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×