搜尋
首頁常見問題oracle的distinct用法是什麼
oracle的distinct用法是什麼Jul 11, 2023 am 09:35 AM
oracledistinct

oracle的distinct用法是可以過濾結果集中的重複行,確保「SELECT」子句中傳回指定的一列或多列的值是唯一的。其語法為“SELECT DISTINCT 欄1,列2,列3... from 表名”,“distinct”會對傳回的結果集進行排序,可以和“order by”結合使用,提高效率。

oracle的distinct用法是什麼

本文的操作環境:Windows10系統、Oracle 19c版本、DELL G3電腦。

Oracle Distinct用法

SELECT DISTINCT可以用來過濾結果集中的重複行,確保SELECT子句中傳回指定的一列或多列的值是唯一的。

只用它來傳回不重複記錄的條數,而不是用它來傳回不重記錄的所有值。原因是distinct只有用二重循環查詢來解決,而這樣對於一個資料量非常大的站來說,無疑是會直接影響到效率的。

distinct 會對傳回的結果集進行排序,所以,最好是和order by 結合使用,可以提高效率。

Oracle SELECT DISTINCT用法

#SELECT DISTINCT語句的語法如下:

SELECT DISTINCT
    column_1
        FROM
    table_name;

在上面語法中,table_name表的column_1列中的值將進行比較以過濾重複項。

要根據多列檢索唯一數據,只需要在SELECT子句中指定列的列表,如下所示:

SELECT DISTINCT column_1,
    column_2,
        ...
        FROM
    table_name;

在此語法中,column_1,column_2和column_n中的值的組合用於確定資料的唯一性。

DISTINCT子句只能在SELECT語句中使用。

請注意,在Oracle中DISTINCT和UNIQUE沒有區別,二者為同義詞,DISTINCT遵循ANSI標準,UNIQUE是Oracle特定的用法,從移植角度考慮,使用遵循ANSI標準的DISTINCT是一個更好的選擇。

Oracle DISTINCT範例

#下面來看看如何使用SELECT DISTINCT來看看它是如何運作的一些例子。

1. Oracle DISTINCT簡單的例子

以下是一個table表

字段1     字段2
 id       name
 1         a
 2         b
 3         c
 4         c
 5         b

如果想用一條語句查詢得到name不重複的所有數據,那就必須使用distinct去掉多餘的重複記錄。所以先輸入:

select *, count(distinct name) from table group by name

然後我們再輸入:

id name count(distinct name)

得到結果:

1 a 1
2 b 1
3 c 1

2. Oracle DISTINCT在一列上應用的範例

以下範例檢索所有聯絡人的名字:

SELECT first_name
FROM contacts
ORDER BY first_name;

執行上面查詢語句,得到以下結果:

oracle的distinct用法是什麼

該查詢傳回了319行,表示聯絡人( contacts)表有319行。

要取得唯一的聯絡人名字,可以將DISTINCT關鍵字加入上面的SELECT語句中,如下所示:

oracle的distinct用法是什麼

該查詢傳回了302行,表示聯絡人(contacts)表有17行是重複的,它們已經被過濾了。

2. Oracle DISTINCT應用多列範例

看下面的order_items表,表格的架構如下:

oracle的distinct用法是什麼

#以下語句從order_items表中選擇不同的產品ID和數量:

SELECT
    DISTINCT product_id,
    quantity
FROM
    ORDER_ITEMS
ORDER BY product_id;

執行上面查詢語句,得到以下結果

oracle的distinct用法是什麼

在此範例中,product_id和quantity列的值都用於評估結果集中行的唯一性。

3. Oracle DISTINCT和NULL

DISTINCT將NULL值視為重複值。如果使用SELECT DISTINCT語句從具有多個NULL值的欄位中查詢數據,則結果集只包含一個NULL值。

請參閱範例資料庫中的locations表,結構如下所示:

oracle的distinct用法是什麼

#以下語句從state列中擷取具有多個NULL值的資料:

SELECT DISTINCT state
FROM locations
ORDER BY state NULLS FIRST;

執行上面範例程式碼,得到以下結果:

oracle的distinct用法是什麼

#如上圖所看到的,只傳回一個NULL值。

以上是oracle的distinct用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
oracle怎么查询所有索引oracle怎么查询所有索引May 13, 2022 pm 05:23 PM

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

什么是oracle asm什么是oracle asmApr 18, 2022 pm 04:16 PM

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

Oracle怎么查询端口号Oracle怎么查询端口号May 13, 2022 am 10:10 AM

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

oracle全角怎么转半角oracle全角怎么转半角May 13, 2022 pm 03:21 PM

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

oracle查询怎么不区分大小写oracle查询怎么不区分大小写May 10, 2022 pm 05:45 PM

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

oracle怎么删除sequenceoracle怎么删除sequenceMay 13, 2022 pm 03:35 PM

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

oracle怎么查询数据类型oracle怎么查询数据类型May 13, 2022 pm 04:19 PM

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

Oracle怎么修改sessionOracle怎么修改sessionMay 13, 2022 pm 05:06 PM

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器