SQL中distinct的用法

2021-07-14 14:18:07 字數 1001 閱讀 8702

表a:

表b:

select distinct name from a
執行後結果如下:

示例2.1

select distinct name, id from a
執行後結果如下:

實際上是根據name和id兩個欄位來去重的,這種方式access和sql server同時支援。

示例2.2

select distinct xing, ming from b
返回如下結果:

返回的結果為兩行,這說明distinct並非是對xing和ming兩列「字串拼接」後再去重的,而是分別作用於了xing和ming列。

select count(distinct name) from a;	  --表中name去重後的數目, sql server支援,而access不支援
count是不能統計多個欄位的,下面的sql在sql server和access中都無法執行。

select count(distinct name, id) from a;
若想使用,請使用巢狀查詢,如下:

select count(*) from (select distinct xing, name from b) as m;
select id, distinct name from a;   --會提示錯誤,因為distinct必須放在開頭
distinct語句中select顯示的字段只能是distinct指定的字段,其他欄位是不可能出現的。例如,假如表a有「備註」列,如果想獲取distinc name,以及對應的「備註」字段,想直接通過distinct是不可能實現的。但可以通過其他方法實現關於sql server將一列的多行內容拼接成一行的問題討

sql中DISTINCT的用法

表a 示例1select distinct name from a執行後結果如下 示例2select distinct name,id from a執行後結果如下 實際上是根據 name id 來去重,distinct同時作用在了name和id上,這種方式access和sql server同時支援。...

SQL中distinct的用法

在使用mysql時,有時需要查詢出某個欄位不重複的記錄,雖然mysql提供有distinct這個關鍵字來過濾掉多餘的重覆記錄只保留一條,但往往只 用它來返回不重覆記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只能返回它的目標字段,而無法返回其它字段,這個問題讓我困擾很久,用d...

SQL中distinct的用法

表a 表b select distinct name from a執行後結果如下 示例2.1 select distinct name,id from a執行後結果如下 實際上是根據name和id兩個欄位來去重的,這種方式access和sql server同時支援。示例2.2 select dist...