1. 程式人生 > >oracle中SELECT DISTINCT 的非常規用法

oracle中SELECT DISTINCT 的非常規用法

新年開工五天,連加了三天的班,這酸爽,簡直不能停。碰到很多問題,有必要總結一下。先說說distinct。

“在表中,可能會包含重複值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。關鍵詞 DISTINCT 用於返回唯一不同的值。”-------來自w3cschool。

比如我遇到的問題:表內有欄位名為“型別”,表內有很多條記錄,我想查找出來這些記錄裡到底屬於哪些型別。

SELECT DISTINCT type FROM table

那麼非常規用法就是,如果我發現這些型別有些有個共同點,比如有些記錄的型別前幾位欄位相同,因為他們的型別屬於某個型別,而這些型別值有些相同的特點。

型別一:AAA,型別一包括型別AAAB,型別AAAC。

型別二:BBB,型別二包括型別BBBB,型別BBBC。

那我我想查出來表裡到底包含幾種大型別。

那麼我們還是直接用

select DISTINCT substr(type,1,3) from table

沒錯,就是直接擷取欄位值的前三位再進行distinct查詢。

關於SQL還有好多不懂得地方,還有很多基本的方法也不知道,下次儘量蒐集一些常用的方法整理出來。

相關推薦

oracleSELECT DISTINCT非常規用法

新年開工五天,連加了三天的班,這酸爽,簡直不能停。碰到很多問題,有必要總結一下。先說說distinct。 “在表中,可能會包含重複值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。關鍵詞 DISTINCT 用於返回唯一不同的值。”-------來自

ORACLEdistinct用法

                       distinct主要是統計不重複的欄位,過濾掉重複的欄位,對重複的欄位只後去一次    eg.        我現在要14和6  這個是人員的id        SELECT DISTINCT(t.user_id) from

mysqlselect distinct用法

在使用mysql時,有時需要查詢出某個欄位不重複的記錄,雖然mysql提供有distinct這個關鍵字來過濾掉多餘的重複記錄只保留一條,但往往只用它來返回不重複記錄的條數,而不是用它來返回不重記錄的所有值。其原因是distinct只能返回它的目標欄位,而無法返回其它欄位,經

Oracle MERGE語句的用法(轉載)

同時 sdn ble reat nth merge type href detail 原文章出處(http://blog.csdn.net/lichkui/article/details/4306299) MERGE語句是Oracle9i新增的語法,用來合並UPDATE和I

oracle merge into 的用法

大數據 char 條件 http -1 alt mat 一個表 dml語句 很多時候我們需要通過篩選條件同時對表進行 更新,插入,刪除 等操作。這樣如果我們單一的去操作表會顯得很麻煩,下面會說到這個merge into 的用法會極大的優化我們操作表的時間和代碼量。 舉例,

Oracle decode 函數用法

個數 依次 elsif 根據 sql nbsp htm 開發 ret 含義解釋: decode(條件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 該函數的含義如下:IF 條件=值1 THEN    RETURN(翻譯值1)ELSIF 條件=值2 THEN

sql語句select……as的用法

inf 語句 技術分享 png info select lec src ima sql語句中select……as的用法

Oracleadd_months()函式的用法

查詢當前時間1個月以前的時間: select add_months(sysdate,-1) from dual; 查詢當前時間1個月以後的時間:   select add_months(sysdate,1) from dual;   如對公司員工表:查詢2年前進入公司的員工的姓

oracle的substr() instr() 用法

原文章:https://www.cnblogs.com/miaoying/p/5784947.html點選開啟連結 --substr(字串,擷取開始位置,擷取長度)=返回擷取的字 select substr('miaoying',0,1) from dual;--返回結果為:m select

oracleadd_months和trunc用法

  oracle中add_months和trunc用法 2012-06-13 13:45  646人閱讀  評論(0)  收藏  舉報 oracle date sql 工作

oracle start with 的用法

oracle 提供了start wit h c onnect by 語法結構可以實現遞迴查詢。 1. 一個簡單舉例: SQL> select *   from test; BILL_MONTH      &

關於Oracleselect * from where 的儲存過程

熟悉SQL Server的人,都會用這樣的方法來建立儲存過程:(查詢student表的資訊)create  procedure  pro_sel_allasselect * from  student由於在Oracle中沒有一個型別去接受一個結果集,而在SQL Server中卻是由資料庫系統自動返回結果集,然

ORACLE部分函式的用法

select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary from employee DECODE的語法:DECODE(value,if1,then1,if2,then2,if3,then3,…,else)

oracle臨時表的用法詳解

1、前言 目前所有使用Oracle作為資料庫支撐平臺的應用,大部分資料量比較龐大的系統,即表的資料量一般情況下都是在百萬級以上的資料量。 當然在Oracle中建立分割槽是一種不錯的選擇,但是當你發現你的應用有多張表關聯的時候,並且這些表大部分都是比較龐大,而你關聯的時候發現其中的某一張或者某

ORACLE merge....into的用法簡單瞭解一下

MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] and […]…) WHEN MATCHED THEN [UPDATE sql] WHEN NO

oracle的merge into用法解析

實現 過濾 using 相關 table 我們 where delet int oracle中的merge into用法解析merge into的形式  MERGE INTO [target-table] A USING [source-table sql] B ON([c

Oraclecase when的用法

Oracle中case when的用法 case when 表示式是一個通用條件的表示式,可以在表示式有效的任何位置使用。 用法如下: CASE WHEN condition THEN result [ WHEN condition THEN result ] ... [ E

Oraclecoalesce函式的用法

學習了幾天教主的書,今天看到coalesce函式,功能很強大啊!coalesce函式的引數是列,結果是取出第一個不為空的列的資料。 首先,建一個檢視: CREATEORREPLACEVIEW v ASSELECTNULLAS c1,NULLAS c2,1 AS 

ORACLE WITH AS 的用法

下面是摘抄並整合的部分。 一.WHAT:     WITH AS短語,也叫做子查詢部分(subquery factoring,可以用來定義一個SQL片斷,該SQL片斷會被整個SQL語句所用,也可以提高sql語句的可讀性, 也有可能是在UNION ALL的不同部分,作為提供

Oracle的時間函式用法(to_date、to_char)

一、24小時的形式顯示出來要用HH24 select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual; select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; 二、