sql查詢distinct
『壹』 sql中distinct的用法是什麼
在表中,可能會包含重復值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。關鍵詞 distinct用於返回唯一不同的值。
表A:
返回的結果為兩行,這說明distinct並非是對xing和ming兩列「字元串拼接」後再去重的,而是分別作用於了xing和ming列。
3.COUNT統計
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;
4.distinct必須放在開頭
select id, distinct name from A; --會提示錯誤,因為distinct必須放在開頭
5.其他
distinct語句中select顯示的欄位只能是distinct指定的欄位,其他欄位是不可能出現的。例如,假如表A有「備注」列,如果想獲取distinc name,以及對應的「備注」欄位,想直接通過distinct是不可能實現的。但可以通過其他方法實現關於SQL Server將一列的多行內容拼接成一行的問題討論
『貳』 sql語句去重distinct方法是什麼
sql語句去重distinct方法是根據name和id兩個欄位來去重的。這種方式Access和SQLServer同時支持,返回的結果為兩行,這說明distinct並非是對xing和ming兩列字元串拼接後再去重的,而是分別作用於了xing和ming列。
sql語句去重distinct特點
distinct語句中select顯示的欄位只能是distinct指定的欄位,其他欄位是不可能出現的,例如假如表A有備注列,如果想獲取distincname,以及對應的備注欄位想直接通過distinct是不可能實現的,但可以通過其他方法實現關於SQLServer將一列的多行內容拼接成一行的問題討論。
distinct這個關鍵字用來過濾掉多餘的重復記錄只保留一條,但往往只用它來返回不重復記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只有用二重循環查詢來解決,而這樣對於一個數據量非常大的站來說,無疑是會直接影響到效率的。
『叄』 distinct在SQL語句裡面的用法,大家來看看
首先要解釋的是:Distinct是避免
查詢里的重復行,不是針對某一列的。
簡單舉例,數據表這樣寫:
姓名
年齡
性別
----------------------
張三
男
25
李四
女
25
王五
男
42
那麼我這么寫:
select distinct * from 表名毫無效果,因為壓根就沒重復行,如果把語句減少一個查詢欄位:
select distinct 年齡 from 表名那結果就只有兩條了。
『肆』 sql命令裡面去掉重復值是使用distinct
DISTINCT關鍵字可從SELECT語句的結果中消除重復的行。如果沒有指定DISTINCT,將返回所有行,包括重復的行。
例如,如果選擇ProctInventory中的所有產品ID時沒有使用DISTINCT,將返回1069行。
如果使用了DISTINCT,就可以消除重復的行,只查看唯一的產品ID:USEAdventureWorks;.ProctInventory此查詢將返回432行。
DISTINCT關鍵字可從SELECT語句的結果中除去重復的行。如果沒有指定DISTINCT,那麼將返回所有行,包括重復的行。
『伍』 distinct sql用法第一個為啥是$
因為是美金的符號並位於首位
SQL資料庫DISTINCT是選擇唯一的結果集,distinct 查詢欄位,只能返回它的目標欄位,而無法返回其他欄位
『陸』 SQL里的DISTINCT什麼意思
distinct就是去掉重復值的意思,比如你這里,DISTINCT(Sno)如果sno出現兩次但是只顯示一次,所以在做count的時候就不一樣了。
『柒』 sql distinct的用法
先mark,再想解決方案
先上代碼,針對SQLSERVER
--inserttestdata
TRUNCATEtabletable1;
INSERTINTOTable1VALUES('ls',9,'2013-08-07')
INSERTINTOTable1VALUES('zs',2,'2013-08-09')
INSERTINTOTable1VALUES('ls',7,'2013-08-08')
INSERTINTOTable1VALUES('zs',3,'2013-08-10')
INSERTINTOTable1VALUES('ls',8,'2013-08-06')
select*from(
selectROW_NUMBER()over(
PARTITIONBYNameorderby[Date]desc
)asrn,*
fromTable1
)a
wherern=1
再上結果
rn ID Name Num Date
-------------------- ----------- ---------- ----------- ----------
1 3 ls 7 2013-08-08
1 4 zs 3 2013-08-10
思路是按名稱分組,每組按日期倒序並將每個組添加行號,最後取出行號為1的記錄即可
『捌』 SQL語句,distinct的關鍵字使用。
distinct是會影響後面的列的,
Select
distinct
amount,payee
FROM
checks
表示的是,查找checks表中,(amount,payee)這樣一個組合不同
的記錄。就是查兩列不全相同的。
『玖』 sql語句中DISTINCT是什麼意思
DISTINCT 這個關鍵詞的意思是用於返回唯一不同的值。
在表中,可能會包含重復值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。SELECT DISTINCT 表示查詢結果中,去掉了重復的行;Distinct表示去掉重復的行。
(9)sql查詢distinct擴展閱讀:
sql語句中使用DISTINCT的注意事項:
如果指定了 SELECT DISTINCT,那麼 ORDER BY 子句中的項就必須出現在選擇列表中,否則會出現錯誤。
比如SQL語句:SELECT DISTINCTCompanyFROM Orders order byCompanyASC是可以正常執行的。
但是如果SQL語句是:SELECT DISTINCTCompanyFROM Orders order byNumASC是不能正確執行的,在ASP中會提示「ORDER BY 子句與 (Num) DISTINCT 沖突」錯誤。
SQL語句修改成:SELECT DISTINCTCompany,NumFROM Orders order byNumASC可以正常執行
參考資料:網路-DISTINCT