最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL中的DISTINCT簡介、SQL DISTINCT詳解 附DISTINCT的用法、DISTINCT注意事項(xiàng)

 更新時(shí)間:2025年05月30日 09:57:02   作者:m0_74823892  
DISTINCT 是 SQL 中用來返回唯一不重復(fù)結(jié)果集的關(guān)鍵字,它通常用于 SELECT 語句中,可以指定一個(gè)或多個(gè)列進(jìn)行去重,并返回唯一的結(jié)果,這篇文章給大家介紹SQL中的DISTINCT簡介、SQL DISTINCT詳解 附DISTINCT的用法、DISTINCT注意事項(xiàng),感興趣的朋友一起看看吧

DISTINCT簡介:

DISTINCT 是 SQL 中用來返回唯一不重復(fù)結(jié)果集的關(guān)鍵字。它通常用于 SELECT 語句中,可以指定一個(gè)或多個(gè)列進(jìn)行去重,并返回唯一的結(jié)果。當(dāng)你在使用 SELECT 查詢數(shù)據(jù)時(shí),可能會(huì)得到包含重復(fù)行的結(jié)果集。為了去除這些重復(fù)行,你可以使用 DISTINCT 關(guān)鍵字來獲取唯一的記錄。

表中插入的原始數(shù)據(jù):

1、單列去重:單列去重:使用 DISTINCT 去重查詢結(jié)果中的單個(gè)列,返回唯一的值。

SELECT	DISTINCT age FROM students

2、多列去重:使用 DISTINCT 去重查詢結(jié)果中的多個(gè)列,返回滿足多列組合唯一的結(jié)果。

SELECTDISTINCT NAME,age,score FROM students

3、結(jié)合其他關(guān)鍵字:DISTINCT 可以與其他 SQL 關(guān)鍵字結(jié)合使用,如 ORDER BY、WHERE 和 GROUP BY 等

SELECT	DISTINCT NAME,age,score FROM students ORDER BY score DESC
SELECT	DISTINCT NAME ,age,score FROM students GROUP BY NAME

4、對(duì)表達(dá)式進(jìn)行去重:DISTINCT 還可以用于對(duì)表達(dá)式進(jìn)行去重,而不僅僅是列名。這允許你根據(jù)某些計(jì)算得到的結(jié)果進(jìn)行去重。

SELECT DISTINCT ( `name` + age) result FROM students

5、COUNT()統(tǒng)計(jì)

SELECT COUNT(DISTINCT NAME) num FROM students

注意事項(xiàng):

1、distinct 必須放在字段的開頭,即放在第一個(gè)參數(shù)的位置。

2、只能在select語句中使用,不能在insert、delete、update中使用。

3、distinct表示對(duì)后面的所有參數(shù)的拼接 取 不重復(fù)的記錄。

4、distinct 忽略 NULL 值:distinct 關(guān)鍵字默認(rèn)會(huì)忽略 NULL 值,即將 NULL 視為相同的值。如果你希望包括 NULL 值在去重結(jié)果中,可以使用 IS NULL 或 IS NOT NULL 進(jìn)行過濾。

5、DISTINCT 基于所有選擇的列:DISTINCT 關(guān)鍵字基于選擇的所有列來進(jìn)行去重。如果你只想根據(jù)部分列進(jìn)行去重,可以使用子查詢或者窗口函數(shù)等技術(shù)來實(shí)現(xiàn)。

6、DISTINCT 的性能消耗:DISTINCT 操作可能會(huì)對(duì)查詢的性能產(chǎn)生一定的影響,特別是在處理大量數(shù)據(jù)時(shí)。因?yàn)樗枰獙?duì)結(jié)果集進(jìn)行排序和比較以去除重復(fù)行。如果性能是一個(gè)關(guān)鍵問題,可以考慮其他優(yōu)化方法,例如使用索引或者合理設(shè)計(jì)查詢。

7、結(jié)果集順序不保證:使用 DISTINCT 關(guān)鍵字后,結(jié)果集的順序可能會(huì)發(fā)生變化,因?yàn)閿?shù)據(jù)庫系統(tǒng)通常會(huì)對(duì)結(jié)果進(jìn)行重新排列以去除重復(fù)行。如果需要特定的結(jié)果排序,可以使用 ORDER BY 子句進(jìn)行排序。

完整版代碼

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    NAME VARCHAR(50),
    age INT,
    score DECIMAL(5, 2)
);
INSERT INTO students (NAME, age, score) VALUES
('Alice', 20, 85.5),
('Bob', 22, 76.3),
('Charlie', 21, 92.0),
('Alice', 20, 85.5),
('David', 23, 68.9);
# 原始數(shù)據(jù)
SELECT	* FROM students
# 單列去重:使用 DISTINCT 去重查詢結(jié)果中的單個(gè)列,返回唯一的值。
SELECT	DISTINCT age FROM students
# 多列去重:使用 DISTINCT 去重查詢結(jié)果中的多個(gè)列,返回滿足多列組合唯一的結(jié)果。
SELECT	DISTINCT NAME,age,score FROM students
# 結(jié)合其他關(guān)鍵字:DISTINCT 可以與其他 SQL 關(guān)鍵字結(jié)合使用,如 ORDER BY、WHERE 和 GROUP BY 等
SELECT	DISTINCT NAME,age,score FROM students ORDER BY score DESC
SELECT	DISTINCT NAME ,age,score FROM students GROUP BY NAME
# 對(duì)表達(dá)式進(jìn)行去重:DISTINCT 還可以用于對(duì)表達(dá)式進(jìn)行去重,而不僅僅是列名。這允許你根據(jù)某些計(jì)算得到的結(jié)果進(jìn)行去重。
SELECT DISTINCT ( `name` + age) result FROM students
# COUNT()統(tǒng)計(jì)
SELECT COUNT(DISTINCT NAME) num FROM students

到此這篇關(guān)于SQL中的DISTINCT簡介、SQL DISTINCT詳解 附DISTINCT的用法、DISTINCT注意事項(xiàng)的文章就介紹到這了,更多相關(guān)sql distinct用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SQLServer 鏡像功能完全實(shí)現(xiàn)

    SQLServer 鏡像功能完全實(shí)現(xiàn)

    折騰SQLServer 鏡像搞了一天,終于有點(diǎn)成果,現(xiàn)在分享出來,之前按網(wǎng)上做的出了很多問題。現(xiàn)在盡量把所遇到的問題都分享出來。
    2011-09-09
  • oracle 重置序列從指定數(shù)字開始的方法詳解

    oracle 重置序列從指定數(shù)字開始的方法詳解

    本文將詳細(xì)介紹oracle 重置序列從指定數(shù)字開始的方法,有需求的朋友可以參考
    2012-11-11
  • 詳解Sql基礎(chǔ)語法

    詳解Sql基礎(chǔ)語法

    這篇文章主要介紹了詳解Sql基礎(chǔ)語法的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • sql server 編譯與重編譯詳解

    sql server 編譯與重編譯詳解

    這篇文章主要介紹了sql server 編譯與重編譯詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • SQL查詢方法精華集

    SQL查詢方法精華集

    簡單的Transact-SQL查詢只包括選擇列表、FROM子句和WHERE子句。它們分別說明所查詢列、查詢的表或視圖、以及搜索條件等
    2017-05-05
  • 詳解SQL中Group By的用法

    詳解SQL中Group By的用法

    GROUP BY 語句用于結(jié)合合計(jì)函數(shù),根據(jù)一個(gè)或多個(gè)列對(duì)結(jié)果集進(jìn)行分組,記下來通過本文給大家介紹SQL中Group By的用法,需要的朋友參考下吧
    2016-03-03
  • SQL Server如何保證可空字段中非空值唯一

    SQL Server如何保證可空字段中非空值唯一

    今天同學(xué)向我提了一個(gè)問題,我覺得蠻有意思,現(xiàn)記錄下來大家探討下。問題是:在一個(gè)表里面,有一個(gè)允許為空的字段,空是可以重復(fù)的,但是不為空的值需要唯一。
    2011-03-03
  • 獲取SQL Server數(shù)據(jù)庫元數(shù)據(jù)的幾種方法

    獲取SQL Server數(shù)據(jù)庫元數(shù)據(jù)的幾種方法

    這篇文章主要介紹了獲取SQL Server數(shù)據(jù)庫元數(shù)據(jù)的幾種方法 ,需要的朋友可以參考下
    2015-08-08
  • SQL Server Management Studio(SSMS)無法連接到服務(wù)器的解決過程

    SQL Server Management Studio(SSMS)無法連接到服務(wù)器的解決

    文章介紹了如何解決在使用SSMS(SQL Server Management Studio)連接服務(wù)器時(shí)出現(xiàn)“無法連接到服務(wù)器”的問題,首先,需要找到SQL Server配置管理器并啟動(dòng)SQL Server服務(wù),如果希望服務(wù)器在開機(jī)時(shí)自動(dòng)啟動(dòng),可以將啟動(dòng)模式改為“自動(dòng)”
    2026-02-02
  • SQL SERVER修改函數(shù)名容易引發(fā)的問題分析

    SQL SERVER修改函數(shù)名容易引發(fā)的問題分析

    這篇文章主要介紹了SQL SERVER修改函數(shù)名容易引發(fā)的問題分析的相關(guān)資料,需要的朋友可以參考下
    2016-02-02

最新評(píng)論

巴中市| 万全县| 紫阳县| 泗水县| 安义县| 蛟河市| 于田县| 崇文区| 儋州市| 京山县| 高淳县| 拉萨市| 定安县| 赤城县| 怀仁县| 洛浦县| 盱眙县| 青州市| 峨眉山市| 阜康市| 洛隆县| 资源县| 元氏县| 灌阳县| 玛纳斯县| 哈密市| 普兰店市| 民县| 井陉县| 如东县| 宁安市| 盐源县| 泾源县| 阜新| 东城区| 洞头县| 津市市| 青川县| 太原市| 太原市| 奎屯市|