【Oracle】單行函式
- 字元函式
A:upper(轉大寫)
selectUpper('abcde')from dual;
SELECT *FROM empWHERE ename=UPPER('smith');
B:Lower(轉小寫)
SELECTlower('ABCD')FROM dual;
C:Initcap(首字母大寫)
SELECTinitcap(ename)from emp;
D:Concat(字元連線函式,等同於||)
SELECTconcat('a','b')FROM
dual;SELECT'a'||'b'from dual;
E:Substr(求母串中的某個子串)
SELECTsubstr('abcde',length('abcde')-2)from dual;
F:Length(字元數)
SELECTlength(ename)from emp;
注意:lengthb:位元組數
G:Replace(字串替換函式)
selectreplace('Hello Wordl','l','*')from dual;
SELECT
replace(ename,'SMITH','A')from emp;說明:將原字串替換為新字串
H:Instr(在母查中查詢子串的位置)
SELECTinstr('Hello World','or')from dual;
I:Lpad(左側填充)
lpad('SMITH',10,'*')
左側填充:
(10-smith的長度)
J:Rpad(右側填充)
rpad('SMITH',10,'*')右側填充
K:Trim(去掉字串前後指定的字元)
selecttrim
('H'from'HelloWorldH')from dual;trim(‘ hello world ’);過濾首尾空格
- 數值函式
A:Round(四捨五入)
selectround(412,-2)from dual;
selectround(412.313,2)from dual;
B:Mod(求餘)
selectmod(1600,300)from dual;
C:Trunc(截斷)
SELECTtrunc(412.13,-2)from dual;
- 日期函式
A:Months_between()(兩個日期相差的月數)
select months_between(sysdate,hiredate)from emp;
B:Add_months()(在指定日期上加上若干個月)
select add_months(sysdate,1)from dual;
C:Next_day()
select next_day(sysdate,’星期一’) from dual;
D:Last_day(某個日期當月的最後一天)
select last_day(sysdate) from dual;
練習
- 顯示當前日期
selectsysdatefrom dual;
- 顯示時間部分
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')from dual;
- 顯示昨天,今天和明天,加減數字仍未日期
selectsysdate-1昨天,sysdate今天,sysdate+1明天from dual;
- 兩個日期相減,結果為相差的天數,查詢員工資訊,顯示員工工齡。兩個日期不能相加
selectempno,ename,sysdate-hiredate天fromemp;
- 查詢員工資訊,顯示員工工齡,分別按照天,星期,月顯示
selectempno,ename,sysdate-hiredate天,(sysdate-hiredate)/7星期, (sysdate-hiredate)/30月fromemp;
- months_between:兩個日期相差的月數
select (sysdate-hiredate)/30方式一,months_between(sysdate,hiredate)方式二from emp;
- add_months:在指定日期上加上若干個月
selectadd_months(sysdate,1) 下個月, add_months(sysdate,123)"123個月後"from dual
- last_day:某個日期當月的最後一天
select last_day(sysdate)from dual;
- next_day:下週六
selectnext_day(sysdate,'星期五')from dual;
- 對日期進行四捨五入
selectround(sysdate,'MONTH') 月,round(sysdate,'YEAR')from dual;
- 對日期進行截斷
selecttrunc(sysdate,'MONTH') 月,trunc(sysdate,'YEAR')fromdual;
- 日期格式
select * from empwhere hiredate=to_date('1982-01-23','yyyy-mm-dd');
- 查詢當前日期:顯示: 2011-09-17 15:12:15今天是星期六
selectto_char(sysdate,'yyyy-mm-dd hh24:mi:ss"今天是"day')from dual;
- 查詢員工資訊,顯示員工的編號,姓名,月薪,要求有貨幣程式碼(L),千位符(,),小數點(.)
select empno,ename,to_char(sal,'L9,999.99')from emp;
4.轉換函式
A:To_char
select to_char(sysdate,’yyyy’) from dual;
select to_char(sysdate,’fmyyyy-mm-dd’) from dual;
select to_char(sal,’L999,999,999’) from emp;
select to_char(sysdate,’D’) from dual;//返回星期
B:To_number
select to_number(‘13’)+ to_number(‘14’) from dual;
C:To_date
select to_date(‘20090219’,’yyyyMMdd’) from dual;
5.通用函式
A:NVL()函式
select nvl(comm,0) from emp;
B:NULLIF()函式
如果表示式exp1與exp2的值相等則返回null,否則返回exp1的值
C:NVL2()函式
select empno, ename , sal ,comm, nvl2(comm, sal+ comm, sal ) total from emp;
D:COALESCE()函式
依次考察各引數表示式,遇到非null值即停止並返回該值
select empno , ename , sal , comm , coalesce(sal + comm , sal , 0)總收入 from emp;
E:CASE表示式
select empno , ename, sal ,
case deptno
when 10 then ‘財務部’
when 20 then ‘研發部’
when 30 then ‘銷售部’
else ‘未知部門’
end部門
from emp;
F:DECODE()函式
與case表示式類似,decode()函式也用於實現多路分支結構
select empno , ename , sal ,
decode(deptno, 10 , ‘財務部’ ,
20,’研發部’,
30,’銷售部’,
‘未知部門’)
部門
from emp ;
練習:
- 找出每個月倒數第三天受僱的員工
select * from emp where last_day(hiredate) – 2 =hiredate;
相關推薦
【Oracle】單行函式
字元函式 A:upper(轉大寫) selectUpper('abcde')from dual; SELECT *FROM empWHERE ename=U
【Oracle】常用函式總結
一、前言 有那麼一段時間,確切的是有近一年的時間,沒有總結什麼。總覺的簡單的東西不想寫了,如果不深奧,不高階,不繫統就不寫,就這樣,近一年的時間我似乎沒有研究什麼新技術,但也確實實踐了很多之前沒有用過的東西,不過似乎不算深入,說來羞愧的不行。不過現在想想記錄下自己之前用過的哪怕一點點簡單的東
SQL函式的使用【Oracle】
‘userenv’----不可改變 字元函式 -- 字元函式 -- 1. lower(char) -- 2. upper(char) -- 3. length(char) --
【案例講解】單行函式
#1.顯示系統時間(注:日期+時間)SELECT NOW();#2.查詢員工號,姓名,工資,以及工資提高百分之20%後的結果(new salary)SELECT employee_id,last_name,salary,salary*1.2 "new salary"FROM
【Oracle】詳解Oracle中NLS_LANG變量的使用
make fault tro territory font pin onclick 添加 其中 目錄結構: // contents structure [-] 關於NLS_LANG參數 NSL_LANG常用的值 在MS-DOS模式和Batch模式中
【Oracle】 oracle數據庫的並發初步理解
數據交互 空閑 details cti 但是 art 網速慢 可見 就會 先從一個列子來說:我們經常聽到說某某網站的每天訪問用戶數有幾十,幾千,幾百萬甚至上千萬,同時在線用戶數有幾萬,幾十萬的。從這個列子我們來分析,數據庫並發的概念。首先,這兒有兩個名詞,一個是每天訪問的用
【Oracle】Oracle的內外連接
close 結構 class 編號 開始時間 eve 時間 條件 rom 1,Oracle中的內外連接 1,內連接 內連接就是符合條件的數據被選中,不符合條件的數據被過濾掉。 1,1,1 等值連接 先看看需要使用的“s_emp”表結構:
【Oracle】淺析Oracle中的事務
ase count 他會 session get 允許 update 查看 操作 1. 什麽是事務 在數據庫中事務是工作的邏輯單元,一個事務是由一個或多個完成一組的相關行為的SQL語句組成,通過事務機制確保這一組SQL語句所作的操作要麽都成功執行,完成整個工作單元操作,要
【Oracle】Oracle中的常用操作
轉換成 sql查詢語句 sub 備份 關系 %d des 統計分析 put 一、ORACLE的啟動和關閉 1、在單機環境下 要想啟動或關閉ORACLE系統必須首先切換到ORACLE用戶,如下 su - oracle a、啟動ORACLE系統 oracle>svrmgr
【Oracle】如何查看日誌
bms base 點擊 rac con contents pri val nag oracle11g修改了日誌系統,不在使用oracle9的alert_$ORACLE_SID.log日誌,修改為Diag Alert 和Diag Trace兩個目錄保存xml格式和文本格式的日
【Oracle】Oracle中使用轉義字符
pos lac 但是 update 語句 劃線 sdn 轉義 cape 1、Oracle 特殊字符 轉義 關鍵詞:oracle 轉義 環境:oracle9i plsql
【Oracle】RAC刪除節點
集群 lease gravity 刪除 配置信息 click csdn word 5.6 環境: OS:OEL5.6 RAC:10.2.0.1.0 眼下有rac1。rac2。rac3三個節點,下面是刪除rac3節點的具體過程 1.刪除rac3節點上的數據庫實
【ORACLE】ORA-27102: out of memory報錯的處理
trac conf error 一個 linu erro 大小 spfile target ************************************************************************ ****原文:blog
【Oracle】無法刪除當前連接的用戶
-- 無法刪除 acl 當前 lec 查詢 select bsp 無法 一、查詢數據庫所有當前連接的用戶 select username, sid, serial# from v$session; 二、從結果列表裏找到對應的用戶 alter system kill s
【Oracle】EXPDP和IMPDP數據泵進行導出導入的方法
ant connect 對象 檢查 前三 logfile cli dmp 嚴重 一、expdp/impdp和exp/imp的區別 1、exp和imp是客戶端工具程序,它們既可以在客戶端使用,也可以在服務端使用。 2、expdp和impdp是服務端的工具程序,他們只能在or
【Oracle】OVER(PARTITION BY)函數用法
指定 union 計算方法 line ron 方法 判斷 ffd 使用 OVER(PARTITION BY)函數介紹 開窗函數 Oracle從8.1.6開始提供分析函數,分析函數用於計算基於組的某種聚合值,它和聚合函數的不同之處是:對於每個組返回
【Oracle】-初識PL/SQL
·· lar 字符 ant 錯誤處理 當前 之前 嵌套 查詢 在最近的工作中要用到存儲過程和函數,索性把PL/SQL整體的看一下。之前看過基本書和園子裏的博文,在這裏將所學簡單總結。 一、基本語句 1、大小寫 2、分隔符 -- ; 3、引用字符串
【Oracle】OGG單向復制配置
sequence make pcs 。。 pat host ext cts testin 實驗環境: 源端: Ip:192.168.40.10 DataBase:O
【Oracle】Oracle Database 12c Release 2安裝多圖詳解
Oracle12c2版數據庫安裝1.1 下載安裝包 oracle官網地址請自行百度oracle,51CTO內容限制不讓我放!1)打開官方網站,找到下載連接,如圖所示。2)選擇更多下載。3)選擇數據庫版本,這裏選擇的是目前的最新版本4)接收許可協議,選在linux版本進行下載5) 接收許可協議,點擊linuxx
【ORACLE】Win2008R2修改oracle數據庫實例名
cal mat tar 文件創建 sysaux locks art sys db_name 需求說明:要求將windows平臺的數據庫實例名由orcl改為haha 參考: https://www.cnblogs.com/junnor/archive/2013/03/0