SQL中distinct的用法

2022-07-29 06:03:08 字數 969 閱讀 2866

表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中DISTINCT的用法

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

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...

SQL中distinct的用法

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