當前位置:首頁 » 編程語言 » sql中distinct的意義
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql中distinct的意義

發布時間: 2023-05-17 11:00:58

1. distinct (sn)sql 中是什麼意思

select distinct (sn) from table;


select distinct sn from table;

一個意州判思,就是去重,如果有多個相含跡巧同 sn,談鍵則只返回不同的sn

2. 第二十九章 SQL命令 DISTINCT

指定僅返回不同值的 SELECT 子句。

可選 DISTINCT 子句出現在 SELECT 關鍵字之後、可選 TOP 子句和第一個 SELECT-ITEM 之前。

DISTINCT 子句應用於 SELECT 語句的結果集。它將每個不同(唯一)值返回的行數限制為一個任意行。如果未指定 DISTINCT 子句,則默認情況下顯示滿足選擇條件的所有行。 ALL 子句與不指定 DEFAULT 子句相同;如果指定 ALL , SELECT 將返回表中滿足選擇條件的所有行。

DISTINCT 從句有兩種形式:

項目欄位必須按列名指定。有效值包括以下值:列名( DISTINCT BY(City) ); %ID (返回所有行);指定列名的標量函數( DISTINCT BY(ROUND(Age,-1) ;指定列名的排序函數( DISTINCT BY(%Exact(City) 。不能按列別名指定欄位;嘗試這樣做會生成 SQLCODE-29 錯誤。不能按列號指定欄位;這將被解釋為文字,並返回一行。將文字指定為 DISTINCT 子句中的項值將返回 1 行;返回哪行是不確定的。因此,指定 7 、 『Chicago』 、 『』 、 0 或 NULL 都返回 1 行。但是,如果將文字指定為逗號分隔列表中的項值,則該文字將被忽略,並且 DISTINCT 將為指定欄位名的每個唯一組合選擇一行。

DISTINCT 子句在 TOP 子句之前應用。如果兩者都指定,則 SELECT 只返回具有唯一值的行,唯一值是在 TOP 子句中指定的唯一值行數。

如果 DISTINCT 子句中指定的列包含 NULL (不包含值)行,則 DISTINCT 將返回一行作為 DISTINCT (唯一)值的 NULL ,如以下示例所示:

DISTINCT 子句在嵌入式SQL簡單查詢中沒有意義,因為在這種類型的嵌入式SQL中, SELECT 始終只返回一行數據。但是,嵌入式SQL基於游標的查詢可以返回多行數據;在基於游標的查詢中, DISTINCT 子句只返回唯一值行。

DISTINCT 子句在 ORDER BY 子句之前應用。因此, DISTINCT 和 ORDER BY 的組合將首先選擇滿足 DISTINCT 子句的任意行,然後根據 ORDER BY 子句對這些行進行排序。

DISTINCT 和 GROUP BY 這兩個記錄按指定欄位(或多個欄位)分組,並為該欄位的每個唯一值返回一條記錄。它們之間的一個重要區別是 DISTINCT 在分組之前計算聚合函數。 GROUP BY 計算分組後的聚合函數。以下示例顯示了這種差異:

DISTINCT 子句可以用一個或多個聚合函數欄位指定,盡管這很少有意義,因為聚合函數返回單個值。因此,下面的示例返回單行:

注意:如果將聚合函數作為唯一項或選擇項的 DISTINCT 子句與 GROUP BY 子句一起使用,則 DISTINCT 子句將被忽略。可以使用子查詢實現 DISTINCT 、聚合函數和 GROUP BY 的預期組合。

根據為欄位定義的排序規則類型,將字元串值不同地分組在一起。默認情況下,字元串數據類型欄位使用 SQLUPPER 排序規則定義,該排序規則不區分大小寫。

如果欄位/特性排序規則類型為 SQLUPPER ,則分組的欄位值將全部以大寫字母返回。要按原始字母大小寫對值進行分組,或以原始字母大小寫顯示分組欄位的返回值,請使用 %Exact 排序規則函數。以下示例顯示了這一點,這些示例假設 Home_City 欄位是使用排序規則類型 SQLUPPER 定義的,並且包含值 『New York』 和 『New York』 :

可以使用管理門戶優化包含 DISTINCT 子句的查詢的查詢性能。依次選擇系統管理、配置、SQL和對象設置、SQL。查看和編輯 GROUP BY 和 DISTINCT 查詢必須生成原始值選項。(此優化也適用於 GROUP BY 子句。)。默認值為「否」。

此默認設置按字母值的大寫排序規則對字母值進行分組。此優化利用選定欄位的索引。因此,只有在一個或多個選定欄位存在索引時才有意義。它對存儲在索引中的欄位值進行排序;字母字元串以全部大寫字母返回。您可以設置此系統范圍的選項,然後使用 %exact 排序規則函數為特定查詢覆蓋它以保留字母大小寫。

也可以使用 $SYSTEM.SQL.Util.SetOption() 方法快速區分選項在系統范圍內設置此選項。要確定當前設置,請調用 $SYSTEM.SQL.CurrentSettings() ,它顯示打開的不同優化設置;默認值為 1 。

指定 DISTINCT 關鍵字會導致基於游標的嵌入式SQL查詢不設置 %ROWID 變數。即使 DISTINCT 不限制返回的行數,也不設置 %ROWID 。下面的示例顯示了這一點:

查詢行為的這種更改僅適用於基於游標的嵌入式 SQL SELECT 查詢。動態 SQL SELECT 查詢和非游標嵌入式 SQL SELECT 查詢從未設置 %ROWID 。

指定 DISTINCT 關鍵字會導致查詢檢索所有當前數據,包括當前事務尚未提交的數據。忽略事務的 READ COMMITTED 隔離模式參數(如果設置);在 READ UNCOMMITTED 模式下檢索所有數據。

以下查詢為每個不同的 Home_State 值返回一行:

以下查詢為每個不同的 Home_State 值返回一行,但返回該行的其他欄位。無法預測檢索到的是哪一行:

以下查詢為 Home_State 和 Office_State 值的每個不同組合返回一行。根據數據的不同,它要麼返回更多行,要麼返回與上一個示例相同的行數:

以下查詢使用 DISTINCT BY 為每個不同的名稱長度返回一行:

下面的查詢使用 DISTINCT BY 為 FavoriteColors %List 值的每個不同的第一個元素返回一行。它列出 FavoriteColors 為空的不同行:

以下查詢按排序規則升序返回從 Sample.Person 檢索到的前 20 個不同的 Home_State 值。 「top」 行反映 Sample.Person 中所有行的 ORDER BY 子句排序。

以下查詢在主查詢和 WHERE 子句子查詢中都使用 DISTINCT 。它返回 Sample.Person 中的前 20 個不同的 Home_State 值,這些值也在 Sample.Employee 中。如果未提供子查詢 DISTINCT ,它將檢索 Sample.Person 中與 Sample.Employee 中隨機選擇的 Home_State 值匹配的 DISTINCT Home_State 值:

以下查詢返回前 20 個不同的 FavoriteColore 值。這反映了 Sample.Person 中所有行的 ORDER BY 子句排序。眾所周知, FavoriteColors 欄位具有 NULL ,因此 FavoriteColors 為 NULL 的不同行出現在排序規則序列的頂部。

還要注意,在前面的示例中,因為 FavoriteColors 是一個列表欄位,所以歸類序列包括元素長度位元組。因此,以三個字母元素(紅色)開頭的不同列表值列在以四個字母元素(藍色)開頭的列表值之前。

3. 在SQL語句中dist是什麼意思

dist是 distinct 的縮寫,意思是在查詢結果中去掉重復的記錄。

使用distinct的注意事項:

1、DISTINCT 必須放在第一個參數。

2、DISTINCT 表示對後面的所有參數的拼接取不重復的記錄,相當於把 SELECT 表達式的項拼接起來選唯一值。

結構化查詢語言簡稱SQL,是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。

結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式,所以具有完全不同底層結構的不同資料庫系態脊統, 可以使用相同的結構化查詢語言作為數據輸入與管理的介面。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。

(3)sql中distinct的意義擴展閱讀:

SQL語句語言特點:

1、SQL風格統一

SQL可以獨立完成資料庫生命周期中的全部活動,包括定義關系模式、錄人數據、建立資料庫、_詢、更新、維護、資料庫重構、資料庫安全性控制等一系列操作,這就為資料庫應用系統開發提供了良好的環境,在資料庫投入運行後,還可根據需要隨時逐步修改模式,且不影響資料庫的運行,從而使系帆敬滲統具有良好的可擴充性。

2、高度非過程化

非關系數據模型的數據操縱語言是面向過程的語言,用其完成用戶請求時,必須指定存取路徑。而用SQL進行數據操作,用戶只需提出「做什麼」,而不必指明「怎麼做」,因此用戶無須了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統自動完成。這不但稿陸大大減輕了用戶負擔,而且有利於提高數據獨立性。

3、面向集合的操作方式

SQL採用集合操作方式,不僅查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。

參考資料來源:網路-sql

4. SQL中select語句跟「distinct」這個參數有什麼作用

distinct如果緊跟在Select之後, 則: 如果Select結果中出現重復行,則重復行只保留一行
distinct如果出現在集函數中,則統計時重復值只記一次.

distinct是關鍵字

5. 簡述sql中查詢語句的關鍵字

distinct
關鍵字可從
select
語句的結果中消除重復的行。如果沒有指定
distinct,將返回所有行,包括重復的行。例如,如果選擇
proctinventory
中的所有產品
id
時沒有使用
distinct,將返回
1069
行。
如果使用了
distinct,就可以消除重復的行,只查看唯一的產品
id:
use
adventureworks;
go
select
distinct
proctid
from
proction.proctinventory
此查詢將返回
432
行。

6. sql語句的「Select Distinct」是什麼意思

Select Distinct的意思是查找重復的意思,在SQL語句中的作用是過濾結果集中的重復值。

在表中,可能會包含重復值,關鍵詞 DISTINCT 用於返回唯一不同的值,語法為

SELECT DISTINCT 列名稱 FROM 表弊嫌名稱。

如果要從 "Company" 列中選取所有的值,我們需要使用 SELECT 語句,語句如下:

SELECT Company FROM Orders

7. sql語句中DISTINCT是什麼意思

SQL
SELECT
DISTINCT
語句
在表中,可能會包含重復值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。
關鍵詞
DISTINCT
用於返回唯一不同的值。
語法:
SELECT
DISTINCT
列名稱
FROM
表名稱

8. SQL里的DISTINCT什麼意思

distinct就是去掉重復值的意思,比如你這里,DISTINCT(Sno)如果sno出現兩次但是只顯示一次,所以在做count的時候就不一樣了。

9. sqlserver中的distinct的具體作用是什麼

我們在使用SQL語句對資料庫扮返緩表中的數據進行查詢的時候,結果中可能會包含多世旅條重復的記錄,而關鍵字distinct的作用就是將重復的記錄進行廳模合並,相同的記錄只顯示一條。

10. sql語句去重 distinct是什麼

distinct用來查詢不重復記錄的條數,即distinct來返回不重復欄位的條數(count(distinct id)),其原因是distinct只能返回他的目標欄位,而無法返回其他欄位。

對單一一個欄位使用distinct去除重復值時,會過濾掉多餘重復相同的值,只返回唯一的值。

對多個欄位同時使用distinct去除重復值時,distinct欄位必須放在第一個欄位前面,不能放在其他欄位的後面。既distinct必須放在select後面,第一個欄位的前面。同時,使用distinct多個欄位去除重復數據時,必須滿足各行中各列所對應的值都相同才能去除重復值,如果有其中一列的值不相同,那就表示這些數據不是重復的數據,不會過濾掉。

用法注意

1、distinct【查詢欄位】,必須放在要查詢欄位的開頭,即放在第一個參數。

2、只能在SELECT語句中使用,不能在INSERT,DELETE,UPDATE中使用。

3、DISTINCT表示對後面的所有參數的拼接取不重復的記錄,即查出的參數拼接每行記錄都是唯一的。

4、不能與all同時使用,默認情況下,查詢時返回的就是所有的結果。