SQL中distinct的用法(四種示例剖析)。本站提示廣大學習愛好者:(SQL中distinct的用法(四種示例剖析))文章只能為提供參考,不一定能成為您想要的結果。以下是SQL中distinct的用法(四種示例剖析)正文
在應用mysql時,有時須要查詢出某個字段不反復的記載,固然mysql供給有distinct這個症結字來過濾失落過剩的反復記載只保存一條,但常常只 用它來前往不反復記載的條數,而不是用它來前往不重記載的一切值。其緣由是distinct只能前往它的目的字段,而沒法前往其它字段,這個成績讓我困擾良久,用distinct不克不及處理的話,我只要用二重輪回查詢來處理,而如許關於一個數據量異常年夜的站來講,無疑是會直接影響到效力的,所以糟蹋了我年夜量時光。
在表中,能夠會包括反復值。這其實不成成績,不外,有時您或許願望僅僅列出分歧(distinct)的值。症結詞 distinct用於前往獨一分歧的值。
表A:
示例1
select distinct name from A
履行後成果以下:
示例2
select distinct name, id from A
履行後成果以下:
現實上是依據“name+id”往來來往重,distinct同時感化在了name和id上,這類方法Access和SQL Server同時支撐。
示例3:統計
select count(distinct name) from A; --表中name去重後的數量, SQL Server支撐,而Access不支撐
select count(distinct name, id) from A; --SQL Server和Access都不支撐
示例4
select id, distinct name from A; --會提醒毛病,由於distinct必需放在開首
其他
distinct語句中select顯示的字段只能是distinct指定的字段,其他字段是弗成能湧現的。例如,假設表A有“備注”列,假如想獲得distinc name,和對應的“備注”字段,想直接經由過程distinct是弗成能完成的。
但可以經由過程其他辦法完成關於SQL Server將一列的多行內容拼接成一行的成績評論辯論