oracle的distinct用法是可以過濾結果集中的重複行,確保「SELECT」子句中傳回指定的一列或多列的值是唯一的。其語法為“SELECT DISTINCT 欄1,列2,列3... from 表名”,“distinct”會對傳回的結果集進行排序,可以和“order by”結合使用,提高效率。
本文的操作環境: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;
執行上面查詢語句,得到以下結果:
該查詢傳回了319行,表示聯絡人( contacts)表有319行。
要取得唯一的聯絡人名字,可以將DISTINCT關鍵字加入上面的SELECT語句中,如下所示:
該查詢傳回了302行,表示聯絡人(contacts)表有17行是重複的,它們已經被過濾了。
2. Oracle DISTINCT應用多列範例
看下面的order_items表,表格的架構如下:
#以下語句從order_items表中選擇不同的產品ID和數量:
SELECT DISTINCT product_id, quantity FROM ORDER_ITEMS ORDER BY product_id;
執行上面查詢語句,得到以下結果
在此範例中,product_id和quantity列的值都用於評估結果集中行的唯一性。
3. Oracle DISTINCT和NULL
DISTINCT將NULL值視為重複值。如果使用SELECT DISTINCT語句從具有多個NULL值的欄位中查詢數據,則結果集只包含一個NULL值。
請參閱範例資料庫中的locations表,結構如下所示:
#以下語句從state列中擷取具有多個NULL值的資料:
SELECT DISTINCT state FROM locations ORDER BY state NULLS FIRST;
執行上面範例程式碼,得到以下結果:
#如上圖所看到的,只傳回一個NULL值。
以上是oracle的distinct用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

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

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

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

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

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

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

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

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

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

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

WebStorm Mac版
好用的JavaScript開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器