oracle各種基本函式查詢
oracle函式: --數值函式 --字元函式 --日期函式 --轉換函式 ---------------------------------------------- 數值函式: --四捨五入:--ROUND(n,m) --m>0:小數點後m位 m<0:小數點前m位 select round(2222.222), round(2222.222, 1), round(2222.222, -1) from dual --結果:2222 2222.2 2220 --取整函式 --1.ceil(n)取整加1 2.floor(n)取整減1 select ceil(2222.222), floor(2222.222) from dual --結果:2223 2222 --常用計算 --1.abs(s):取絕對值 select abs(2222.222), abs(-2222.222), abs(0) from dual --結果:2222.222 2222.222 0 --2.mod(m,n) 取餘數 m/n的餘數,如果m或n為null,結果則為null select mod(2222.222,2) from dual --結果:0.222 --3.power(m,n) 返回m的n次冪 select power(2,3) from dual --結果: 8 (2的三次方) --4.sqrt(n) 求平方根 select sqrt(16) from dual --結果:4 --三角函式 --sin(n),asin(n),cos(n),acos(n),tan(n),atan(n) ---------------------------------------------- 字元函式: --1.大小寫轉換函式 --upper(char)小寫變大寫 lower(char)大寫變小寫 initcap(char)首字母大寫 select upper('zhanghaochun'), lower('ZHANGhaochun'), initcap('zhanghaochun') from dual --結果:ZHANGHAOCHUN zhanghaochun Zhanghaochun --應用場景:登入時不區分大小寫 --2.獲取子字串函式 --substr(char,m,n) m:取子串的開始位置 n:擷取子串的位數 select substr('zhanghaochun', 6, 3) from dual --結果:hao (從第6個開始擷取,擷取3個) --3.獲取字串長度函式 --length(char) select length('zhanghaochun') from dual --結果:12 --應用場景:查詢名字超過三個的人的資訊 --4.字串連線函式 --concat(char1,char2) --與||操作符的作用一樣 select concat('中華', '人民'), '中華' || '人民' from dual --結果:中華人民 中華人民 --5.去除子串函式 --5.1:trim(c2 from c1) 表示從c1中去除掉 c2 這個字串 select trim('z' from 'zhanghaochun') from dual; --結果:hanghaochun 僅能擷取掉一個字元,第一個字元 --5.2:ltrim(c1,c2) 從左邊去除 --5.3:rtrim(c1,c2) 從右邊去除 --5.4:trim(c1) 去除兩邊的空格 --6.替換函式 --replace(char,s_string1,s_string2) s1:需要替換的內容 s2:替換成什麼內容 --s_string2為空時,預設用空格替換 select replace(' ', 'a', 'A') from dual; --結果:AAbbAAccAAdd 將a換成A ---------------------------------------------- 日期函式: --系統時間 --sysdate select sysdate today from dual; --結果:2017/5/22/週一 15:46:42 --日期操作 --1.add_months(date,i) i:想要加上幾個月,為整數。如果是小數,則擷取整數部分 --作用:正數:返回在指定日期上增加幾個月份 負數:返回在指定日期上減少幾個月份 select add_months(sysdate, 3), add_months(sysdate, -3) today from dual; --結果:2017/8/22/週二 15:55:39 2017/2/22/週三 15:55:39 --2.next_day(date,char) --作用:如果char的值是'星期一',則返回date指定日期的下週一是哪天 select sysdate, next_day(sysdate, '星期一') from dual; --結果:2017/5/22/週一 16:04:53 2017/5/29/週一 16:04:53 --3.last_day(date) --作用:返回所在月的最後一天 select sysdate, last_day(sysdate) from dual; --結果:2017/5/22/週一 16:09:14 2017/5/31/週三 16:09:14 --4.months_between(date1,date2) --作用:計算兩個日期之間相隔的月份 select months_between(add_months(sysdate, 12), sysdate) from dual; --結果:12 等同於兩個日期的值直接相減 --5.extract(date from datetime) --作用:從datetime裡找出date的時間 select sysdate,--2017/5/22/週一 16:23:36 extract(year from sysdate),--2017 extract(month from sysdate),--5 extract(day from sysdate)--22 from dual; --結果:2017/5/22/週一 16:23:36 2017 5 22 --hour minites --統計季度 ---------------------------------------------- 轉換函式: --1.日期轉換成字元 --to_char(date,fmt) date:將要轉換的日期 fmt:轉換的格式 select to_char(sysdate, 'yyyy-MM-dd HH24:MI:ss') from dual; --結果:2017-05-23 09:37:25 --2.字元轉換成日期 --to_date(char,fmt) char:要轉換的字串 fmt:轉換的格式 select to_date('2017-05-23', 'yyyy-MM-dd') from dual; --結果:2017/5/23/週二 只會按照系統預設格式顯示日期 --3.數字轉換成字元 --to_char(number,fmt) number:所要轉換的數字型別資料 fmt:所要的格式資料 select to_char(123456.789, '$999,999.999') from dual --結果: $123,456.789 select to_char(123456.789, 'S999,999.999') from dual --結果:+123,456.789 --4.字元轉換成數字 --to_number(char,fmt) char:想要轉換的字元 fmt:想要的格式 select to_number('$1,000','$9999') from dual; --結果:1000 --fmt日期格式: --年:YY YYYY YEAR --月:MM MONTH --日:DD DAY --時:HH24 HH12 --分秒:MI SS --fmt數字轉字元格式: --9:顯示數字並忽略前面的0 --0:顯示數字,位數不足,用0補齊 --. 或 D:顯示小數點 --,或 G:顯示千位符 --$:美元符號 --S:加正負號(前後都可以) --其他函式: --nvl(a,b) --如果a為空,則顯示b,如果不為空,則顯示a --類似於三元運算子 select nvl('','資料為空') from dual; --結果:資料為空 --場景: --當執行插入資料時,欄位約束不能為空,就可以用該函式給一個預設值 --DECODE(value,if1,then1,if2,then2,if3,then3,...,else) select decode(100,10,'值是10','30','值為30','50','值為50','10000') from dual; --結果:10000 --switch(value){if1:then1;if2:then2;if3:then3;else} --場景: --執行復雜判斷的時候可以用到 --case when if1 then end1 else default end select case when 100 = 10 then '值為10' when 100 = 100 then '值為100' when 100 = 1000 then '值為1000' else '預設值' end from dual; --結果:值為100 --場景,執行復雜判斷時 --運用例子(統計符合特定條件的費用資訊) sum(case when d.bka432 not in ('101','102') and d.bka078 in('C001','C002','C003') and d.aaa157 = '999' then d.aae019 else 0 end ) BKE108--統籌支付費用
相關推薦
oracle各種基本函式查詢
oracle函式: --數值函式 --字元函式 --日期函式 --轉換函式 ---------------------------------------------- 數值函式: --四捨五入:--ROUND(n,m) --m>0:小數點後m位 m<0:小數
Oracle-02-基本select查詢
下面開始執行基本select語句 conn oracle select * from tab; 檢視oracle下面所有的物件 TNAME TABTYPE CLUSTERID ------------------
[oracle自定義函式]查詢表格的行數
假如要查的表為emp(員工表),在scott使用者下預設有這張表。當前有14條記錄。 只需要執行 select count(*) from emp; 需求:現在要把表名變成動態傳入的,想查哪張表的行數只要傳入表名就行了 一、準備工作 在寫這個之前,我們先來寫一個根據員
oracle自定義函式查詢資料字典項
/****************************** 假設儲存資料字典表名:data_dict_entry 表結構如下: create table data_dict_entry ( DICTTYPEID VARCHAR2(128) not null,
ORACLE中查詢語句的執行順及where部分條件執行順序測試 Oracle中的一些查詢語句及其執行順序 Select 語句執行順序以及如何提高Oracle 基本查詢效率
Oracle中的一些查詢語句及其執行順序 原文地址:https://www.cnblogs.com/likeju/p/5039115.html 查詢條件:1)LIKE:模糊查詢,需要藉助兩個萬用字元,%:表示0到多個字元;_:標識單個字元。2)IN(list):用來取出符合列表範圍中的資料。3)NOT I
Oracle (02)SELECT.函式.多表查詢.笛卡爾乘積.SQL99 標準連線.組函式.
SELECT order by 子句 (排序) *** 筆記中出現的[] 表示可以忽略的引數! 編寫的格式有一個特點: order by子句 , 如果出現, 必須放在select語句的最後面! order by 可以對查詢的結果集, 指定排序的規則! 規則: 升序(asc
oracle的各種常用函式大全
1.字元函式 (1)concat(str1,str2)字串拼接函式 select concat('Hello ','World') from dual; --等價於 select 'Hello '||'World' from dual; (2)initcap(s
Oracle基本語法查詢語句
Oracle基本查詢語法 本文含含: 基礎/基本查詢/排序/函式(單/多) 一.前言知識 1.oracle如何操作硬碟上的檔案,最終都是以程序方式操作硬碟上的檔案,最基本程序:讀 寫 ,還有其他客戶端
oracle利用分析函式row_number()over()查詢一張表所有欄位並按照其中部分欄位分組查詢某欄位最大值
先準備資料: deptid :部門id. parent_deptid :deptid 的父級部門,也就是depid 是他的子部門。 create table test_employee (empid int ,deptid int ,parent_deptid int,sa
C/C++:各種基本演算法實現小結(六)—— 查詢演算法
各種基本演算法實現小結(六)—— 查詢演算法 (均已測試通過) =================================================================== 1、簡單查詢 在一組無序數列中,查詢特定某個數值,並返回其位置
oracle 使用instr()函式對in查詢出的記錄按照in中的資料進行排序
需求:輸入漢字,得出它的拼音碼、五筆碼; 方法:使用instr()函式 select * from cnword where word in ('我','們','是','祖','國','的','花',
Oracle基本函式-大小寫轉換函式
UPPER():所有字母轉換為大寫 LOWER():所有字母轉換為小寫 INITCAP():所有單詞首字母與轉換為大寫 declare v_namelower varchar2(50) := 'k
關於Oracle資料庫基本知識②——常見函式理解
oracle函式還是很重要的,可以增強sql語句功能,在這裡簡單講下關於oracle11g環境下的一些函式理解: 1、Concat()函式 Concat:連線兩個不同的列,concat只能接受兩個引數。 /* Concat:連線兩個不同的列,concat只能接受兩個引數 */
oracle 使用自定義函式查詢條件效率非常低
說到這裡我要提一個oracle函式的屬性,就是deterministic。它表示一個函式在輸入不變的情況下輸出是否確定,像oracle的內建函式UPPER,TRUNC等都是deterministic函式,而像DBMS_RANDOM.VALUE就不是deterministic函式,因為同樣的輸入不一定會導致同樣
Oracle資料庫基本連線資訊查詢
--獲取當前的連線數 select count(*) from v$process;--獲取最大連線數 select value from v$parameter where name='processes'; select value from v$parameter w
Oracle之單表查詢及常用函式
1.語法: select 欄位列表 from 表名 [where 查詢條件] [group by 分組] [having 分組條件] [order by 排序] select * 代表查詢所有的欄位 select
榮工又解決問題了:用ORACLE的sys_connect_by_path函式,獲得遞迴查詢路徑上各個節點的運算值
語句示例如下 Select JgId,JgType,OrgCode,Orgname,DepCode,DepName,ClsCode,ClsName,EtpCode,EtpName sys_connect_by_path(PlanRate,'*') from
一、Oracle之單表查詢和常用函式
一、Oracle概念 1. 資料庫 Oracle 資料庫是資料的物理儲存。這就包括(資料檔案 ORA 或者 DBF、控制檔案、聯機日誌、引數檔案)。其實 Oracle 資料庫的概念和其它資料庫不一樣,這裡的資料庫是一個作業系統只有一個庫。可以看作是 Ora
oracle各種查詢語句
1. Oracle安裝完成後的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 2. ORACLE9IAS W
Oracle RAC基本概念
特定 遷移 解決方案 開發人員 安裝配置 獲得 情況 網格 play 原文鏈接:http://tech.it168.com/a2012/0814/1384/000001384756_all.shtml 不同的集群產品都有自己的特點,RAC的特點包括如下幾點: ·