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還有好多不懂得地方,還有很多基本的方法也不知道,下次儘量蒐集一些常用的方法整理出來。
相關推薦
oracle中SELECT DISTINCT 的非常規用法
新年開工五天,連加了三天的班,這酸爽,簡直不能停。碰到很多問題,有必要總結一下。先說說distinct。 “在表中,可能會包含重複值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。關鍵詞 DISTINCT 用於返回唯一不同的值。”-------來自
ORACLE中的distinct的用法
distinct主要是統計不重複的欄位,過濾掉重複的欄位,對重複的欄位只後去一次 eg. 我現在要14和6 這個是人員的id SELECT DISTINCT(t.user_id) from
mysql中select 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的用法
Oracle中add_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
oracle中add_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 &
關於Oracle中select * 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
Oracle中case when的用法
Oracle中case when的用法 case when 表示式是一個通用條件的表示式,可以在表示式有效的任何位置使用。 用法如下: CASE WHEN condition THEN result [ WHEN condition THEN result ] ... [ E
Oracle中coalesce函式的用法
學習了幾天教主的書,今天看到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; 二、