sql語句中DISTINCT是什么意思
DISTINCT 這個關鍵詞的意思是用于返回唯一不同的值。
在表中,可能會包含重復值。這并不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。SELECT DISTINCT 表示查詢結(jié)果中,去掉了重復的行;Distinct表示去掉重復的行。
擴展資料:
sql語句中使用DISTINCT的注意事項:
如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的項就必須出現(xiàn)在選擇列表中,否則會出現(xiàn)錯誤。
比如SQL語句:SELECT DISTINCTCompanyFROM Orders order byCompanyASC是可以正常執(zhí)行的。
但是如果SQL語句是:SELECT DISTINCTCompanyFROM Orders order byNumASC是不能正確執(zhí)行的,在ASP中會提示“ORDER BY 子句與 (Num) DISTINCT 沖突”錯誤。
SQL語句修改成:SELECT DISTINCTCompany,NumFROM Orders order byNumASC可以正常執(zhí)行
參考資料:百度百科-DISTINCT
sql語句去重 distinct是什么?
distinct用來查詢不重復記錄的條數(shù),即distinct來返回不重復字段的條數(shù)(count(distinct id)),其原因是distinct只能返回他的目標字段,而無法返回其他字段。
對單一一個字段使用distinct去除重復值時,會過濾掉多余重復相同的值,只返回唯一的值。
對多個字段同時使用distinct去除重復值時,distinct字段必須放在第一個字段前面,不能放在其他字段的后面。既distinct必須放在lect后面,第一個字段的前面。同時,使用distinct多個字段去除重復數(shù)據(jù)時,必須滿足各行中各列所對應的值都相同才能去除重復值,如果有其中一列的值不相同,那就表示這些數(shù)據(jù)不是重復的數(shù)據(jù),不會過濾掉。
用法注意
1、distinct【查詢字段】,必須放在要查詢字段的開頭,即放在第一個參數(shù)。
2、只能在SELECT語句中使用,不能在INSERT,DELETE,UPDATE中使用。
3、DISTINCT表示對后面的所有參數(shù)的拼接取不重復的記錄,即查出的參數(shù)拼接每行記錄都是唯一的。
4、不能與all同時使用,默認情況下,查詢時返回的就是所有的結(jié)果。
SQL中distinct的用法是什么?
在表中,可能會包含重復值。這并不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。關鍵詞 distinct用于返回唯一不同的值。
表A:
表B:
1.作用于單列
lect distinct name from A
執(zhí)行后結(jié)果如下:
2.作用于多列
示例2.1
lect distinct name, id from A
執(zhí)行后結(jié)果如下:
實際上是根據(jù)name和id兩個字段來去重的,這種方式Access和SQL Server同時支持。
示例2.2
lect distinct xing, ming from B
返回如下結(jié)果:
返回的結(jié)果為兩行,這說明distinct并非是對xing和ming兩列“字符串拼接”后再去重的,而是分別作用于了xing和ming列。
3.COUNT統(tǒng)計
lect count(distinct name) from A; --表中name去重后的數(shù)目, SQL Server支持,而Access不支持
count是不能統(tǒng)計多個字段的,下面的SQL在SQL Server和Access中都無法運行。
lect count(distinct name, id) from A;
若想使用,請使用嵌套查詢,如下:
lect count(*) from (lect distinct xing, name from B) AS M;
4.distinct必須放在開頭
lect id, distinct name from A; --會提示錯誤,因為distinct必須放在開頭
5.其他
distinct語句中l(wèi)ect顯示的字段只能是distinct指定的字段,其他字段是不可能出現(xiàn)的。例如,假如表A有“備注”列,如果想獲取distinc name,以及對應的“備注”字段,想直接通過distinct是不可能實現(xiàn)的。但可以通過其他方法實現(xiàn)關于SQL Server將一列的多行內(nèi)容拼接成一行的問題討論
sql語句去重distinct方法是什么?
sql語句去重distinct方法是根據(jù)name和id兩個字段來去重的。這種方式Access和SQLServer同時支持,返回的結(jié)果為兩行,這說明distinct并非是對xing和ming兩列字符串拼接后再去重的,而是分別作用于了xing和ming列。
sql語句去重distinct特點
distinct語句中l(wèi)ect顯示的字段只能是distinct指定的字段,其他字段是不可能出現(xiàn)的,例如假如表A有備注列,如果想獲取distincname,以及對應的備注字段想直接通過distinct是不可能實現(xiàn)的,但可以通過其他方法實現(xiàn)關于SQLServer將一列的多行內(nèi)容拼接成一行的問題討論。
distinct這個關鍵字用來過濾掉多余的重復記錄只保留一條,但往往只用它來返回不重復記錄的條數(shù),而不是用它來返回不重記錄的所有值。其原因是distinct只有用二重循環(huán)查詢來解決,而這樣對于一個數(shù)據(jù)量非常大的站來說,無疑是會直接影響到效率的。
本文發(fā)布于:2023-02-28 20:27:00,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/167767615583544.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:sql distinct.doc
本文 PDF 下載地址:sql distinct.pdf
| 留言與評論(共有 0 條評論) |