ALL、DISTINCT、DISTINCTROW、TOP 述詞

ALL、DISTINCT、DISTINCTROW、TOP 述詞

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

指定 SQL 查詢以選取的記錄。

語法

選取 [所有 |相異 |DISTINCTROW |[前n [百分比]]]
資料表

包含這些述詞的 SELECT 陳述式包含下列部分 ︰

部分

描述

ALL

如果您未包含述詞的其中一個假設其值。Microsoft Access 資料庫引擎會選取所有符合條件的 SQL 陳述式的記錄。下列兩個範例相同,並從 [員工] 資料表中傳回的所有記錄 ︰

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

不同

省略包含選取的欄位中的重複資料的記錄。若要包含在查詢的結果,SELECT 陳述式中所列的每個欄位的值必須是唯一的。例如,員工] 資料表中所列的數個員工可能會有相同的最後一個名稱。如果這兩筆記錄包含 Smith [姓氏] 欄位中的,下列 SQL 陳述式會傳回包含 Smith 只有一筆記錄 ︰

SELECT DISTINCT LastName
FROM Employees;

如果您省略相異,此查詢會傳回兩個 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。

n [百分比]

會傳回落在頂端的記錄數目或底部的 [ORDER BY 子句所指定的範圍。假設您想要的類別的 1994年從上方的 25 學生名稱 ︰

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

如果您不包含 ORDER BY 子句,查詢會傳回 25 記錄的任意組合符合 WHERE 子句的學生表格。

TOP 述詞未選擇之間相等的值。在上述範例中,如果第 25 和最高平均成績相同,則查詢會傳回 26 記錄。

您也可以使用百分比的保留的字,傳回特定百分比的頂端或底部的範圍,指定 ORDER BY 子句的記錄。假設,而不是上方 25 學生,您要的底部 10%的類別 ︰

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

ASC 述詞指定的底端值傳回。遵循上方的值必須是正負號的整數。

查詢可更新,就不會影響頂端。

table

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



附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×