ALL、DISTINCT、DISTINCTROW、TOP 述詞 - Microsoft ...

文章推薦指數: 80 %
投票人數:10人

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

語法. 選取[全部|DISTINCT |DISTINCTROW |[TOP n [PERCENT]]] FROM 表格. 包含這些謂詞的SELECT 語句 ... 跳到主要內容 Office支援 產品 Microsoft365 Office Outlook MicrosoftTeams OneDrive OneNote Windows MicrosoftEdge 更多... 裝置 Surface 電腦配件 行動裝置 Xbox HoloLens 硬體保固 新增功能 安裝Office 帳戶與計費 範本 更多支援 社群論壇 系統管理員 開發人員 教育版 小型企業版 回報支援詐騙 Access 查詢 SQL語法 SQL語法 ALL、DISTINCT、DISTINCTROW、TOP述詞 AccessforMicrosoft365Access2021Access2019Access2016Access2013Access2010Access2007More...Less 指定使用SQL查詢選取的記錄。

語法 選取[全部|DISTINCT|DISTINCTROW|[TOPn[PERCENT]]]FROM表格 包含這些謂詞的SELECT語句由下列各部分組成: 部分 描述 ALL 假設您不包含其中一個謂詞。

MicrosoftAccess資料庫引擎會選取符合SQL語句條件的所有記錄。

下列兩個範例是相等的,會從員工資料表返回所有記錄: SELECTALL*FROMEmployeesORDERBYEmployeeID; SELECT*FROMEmployeesORDERBYEmployeeID; DISTINCT 省略所選欄位中包含重復資料的記錄。

若要包含在查詢結果中,SELECT語句中列出的每個欄位的值都必須是唯一的。

例如,在員工資料表中所列的數位員工可能都有相同的姓氏。

如果LastName欄位中有兩筆記錄包含Smith,則下列SQL語句只會回條包含Smith的記錄: SELECTDISTINCTLastNameFROMEmployees; 如果您省略DISTINCT,此查詢會同時會同時會回回Smith記錄。

如果SELECT子句包含多個欄位,則所有欄位的值組合必須是唯一的,以將特定記錄包含在結果中。

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

DISTINCTROW 根據重複的記錄省略資料,而不只是重複的欄位。

例如,您可以建立一個查詢,以聯聯CustomerID欄位上的客戶與訂單資料表。

客戶資料表不包含重複的CustomerID欄位,但Orders資料表會包含,因為每位客戶可以有許多訂單。

下列SQL語句顯示如何使用DISTINCTROW製作至少擁有一份訂單,但不含這些訂單詳細資料的公司清單: SELECTDISTINCTROWCompanyNameFROMCustomersINNERJOINOrdersONCustomers.CustomerID=Orders.CustomerIDORDERBYCompanyName; 如果您省略DISTINCTROW,此查詢會針對每一家公司產生多列訂單。

DISTINCTROW只有在您從查詢中使用的部分資料表中選取欄位時,而非全部資料表時,才具有效果。

如果您的查詢只包含一個資料表,或如果您從所有資料表輸出欄位,則DISTINCTROW會被忽略。

TOPn[PERCENT] 會回到ORDERBY子句所指定範圍頂端或底部的特定數目記錄。

假設您要1994年級前25個學生的名稱: SELECTTOP25FirstName,LastNameFROMStudentsWHEREGraduationYear=2003ORDERBYGradePointAverageDESC; 如果您不包含ORDERBY子句,查詢會從學生資料表,從符合WHERE子句的25個記錄任意組。

TOP謂詞不會在等值之間選擇。

在上一個範例中,如果第二十五個和第二十六個最高成績的分數平均值相同,查詢會返回26個記錄。

您也可以使用PERCENT保留字,來退回位於ORDERBY子句所指定範圍頂端或底部的特定百分比記錄。

假設您想要班級中倒數10%的學生,而不是前25名的學生: SELECTTOP10PERCENTFirstName,LastNameFROMStudentsWHEREGraduationYear=2003ORDERBYGradePointAverageASC; ASC謂詞會指定底端值的返回。

TOP後的值必須是未簽名的整數。

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

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

Needmorehelp? Expandyourskills ExploreTraining Getnewfeaturesfirst JoinMicrosoftOfficeInsiders Wasthisinformationhelpful? Yes No Thankyou!Anymorefeedback?(Themoreyoutellusthemorewecanhelp.) Canyouhelpusimprove?(Themoreyoutellusthemorewecanhelp.) Howsatisfiedareyouwiththetranslationquality? Whataffectedyourexperience? Resolvedmyissue Clearinstructions Easytofollow Nojargon Pictureshelped Translationquality Didn'tmatchmyscreen Incorrectinstructions Tootechnical Notenoughinformation Notenoughpictures Translationquality Anyadditionalfeedback?(Optional) Submitfeedback Thankyouforyourfeedback! ×



請為這篇文章評分?