1. 程式人生 > >【Oracle】單行函式

【Oracle】單行函式

  1. 字元函式

Aupper(轉大寫)

selectUpper('abcde')from dual;

SELECT *FROM empWHERE ename=UPPER('smith');

BLower(轉小寫)

SELECTlower('ABCD')FROM dual;

CInitcap(首字母大寫)

SELECTinitcap(ename)from  emp;

DConcat(字元連線函式,等同於||

SELECTconcat('a','b')FROM

dual;

SELECT'a'||'b'from dual;

ESubstr(求母串中的某個子串)

SELECTsubstr('abcde',length('abcde')-2)from dual;

FLength(字元數)

SELECTlength(ename)from emp;

注意:lengthb:位元組數

GReplace(字串替換函式)

selectreplace('Hello Wordl','l','*')from dual;

SELECT

replace(ename,'SMITH','A')from emp;

說明:將原字串替換為新字串

HInstr(在母查中查詢子串的位置)

SELECTinstr('Hello World','or')from dual;

ILpad(左側填充)

lpad('SMITH',10,'*')

左側填充:

(10-smith的長度)

JRpad(右側填充)

rpad('SMITH',10,'*')右側填充

KTrim(去掉字串前後指定的字元)

selecttrim

('H'from'HelloWorldH')from dual;

trim(   hello  world   ’);過濾首尾空格

  1. 數值函式

ARound(四捨五入)

selectround(412,-2)from dual;

selectround(412.313,2)from dual;

BMod(求餘)

selectmod(1600,300)from dual;

CTrunc(截斷)

SELECTtrunc(412.13,-2)from dual;

  1. 日期函式

AMonths_between()(兩個日期相差的月數)

select months_between(sysdate,hiredate)from emp;

BAdd_months()(在指定日期上加上若干個月)

select add_months(sysdate,1)from dual;

CNext_day()

select next_day(sysdate,’星期一’)  from dual;

DLast_day(某個日期當月的最後一天

select last_day(sysdate) from dual;

練習

    1. 顯示當前日期

selectsysdatefrom dual;

    1. 顯示時間部分

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')from dual;

    1. 顯示昨天,今天和明天,加減數字仍未日期

selectsysdate-1昨天,sysdate今天,sysdate+1明天from dual;

    1. 兩個日期相減,結果為相差的天數,查詢員工資訊,顯示員工工齡。兩個日期不能相加

selectempno,ename,sysdate-hiredatefromemp; 

    1. 查詢員工資訊,顯示員工工齡,分別按照天,星期,月顯示

selectempno,ename,sysdate-hiredate,(sysdate-hiredate)/7星期, (sysdate-hiredate)/30fromemp; 

    1. months_between:兩個日期相差的月數

select (sysdate-hiredate)/30方式一,months_between(sysdate,hiredate)方式二from emp;

    1. add_months:在指定日期上加上若干個月

selectadd_months(sysdate,1下個月, add_months(sysdate,123)"123個月後"from dual

    1. last_day:某個日期當月的最後一天

select last_day(sysdate)from dual;

    1. next_day:下週六

selectnext_day(sysdate,'星期五')from dual;

    1. 對日期進行四捨五入

selectround(sysdate,'MONTH',round(sysdate,'YEAR')from dual;

    1. 對日期進行截斷

selecttrunc(sysdate,'MONTH',trunc(sysdate,'YEAR')fromdual; 

    1. 日期格式

select * from empwhere hiredate=to_date('1982-01-23','yyyy-mm-dd');

    1. 查詢當前日期:顯示:  2011-09-17 15:12:15今天是星期六

selectto_char(sysdate,'yyyy-mm-dd hh24:mi:ss"今天是"day')from dual;

    1. 查詢員工資訊,顯示員工的編號,姓名,月薪,要求有貨幣程式碼(L),千位符(,),小數點(.)

select empno,ename,to_char(sal,'L9,999.99')from emp; 

4.轉換函式

ATo_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;//返回星期

BTo_number

select to_number(‘13’)+ to_number(‘14’)  from dual;

CTo_date

select to_date(‘20090219’,’yyyyMMdd’) from  dual;

5.通用函式

ANVL()函式

select nvl(comm,0)  from emp;

BNULLIF()函式

如果表示式exp1exp2的值相等則返回null,否則返回exp1的值

CNVL2()函式

select  empno, ename , sal ,comm, nvl2(comm, sal+ comm, sal ) total from emp;

DCOALESCE()函式

依次考察各引數表示式,遇到非null值即停止並返回該值

select empno , ename , sal , comm , coalesce(sal + comm , sal , 0)總收入 from emp;

ECASE表示式

select empno , ename, sal ,

case  deptno

when 10  then ‘財務部’

when 20  then ‘研發部’

when 30  then ‘銷售部’

else ‘未知部門’

end部門

from  emp;

FDECODE()函式

case表示式類似,decode()函式也用於實現多路分支結構

select empno , ename , sal ,

decode(deptno, 10 , ‘財務部’ ,

 20,’研發部’,

 30,’銷售部’,

 ‘未知部門’)

部門

 from emp ;

練習:

    1. 找出每個月倒數第三天受僱的員工

                         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 網速慢 可見 就會 先從一個列子來說:我們經常聽到說某某網站的每天訪問用戶數有幾十,幾千,幾百萬甚至上千萬,同時在線用戶數有幾萬,幾十萬的。從這個列子我們來分析,數據庫並發的概念。首先,這兒有兩個名詞,一個是每天訪問的用

    OracleOracle的內外連接

    close 結構 class 編號 開始時間 eve 時間 條件 rom 1,Oracle中的內外連接 1,內連接 內連接就是符合條件的數據被選中,不符合條件的數據被過濾掉。 1,1,1 等值連接 先看看需要使用的“s_emp”表結構:

    Oracle淺析Oracle中的事務

    ase count 他會 session get 允許 update 查看 操作 1. 什麽是事務 在數據庫中事務是工作的邏輯單元,一個事務是由一個或多個完成一組的相關行為的SQL語句組成,通過事務機制確保這一組SQL語句所作的操作要麽都成功執行,完成整個工作單元操作,要

    OracleOracle中的常用操作

    轉換成 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格式和文本格式的日

    OracleOracle中使用轉義字符

    pos lac 但是 update 語句 劃線 sdn 轉義 cape 1、Oracle 特殊字符 轉義 關鍵詞:oracle 轉義 環境:oracle9i plsql

    OracleRAC刪除節點

    集群 lease gravity 刪除 配置信息 click csdn word 5.6 環境: OS:OEL5.6 RAC:10.2.0.1.0 眼下有rac1。rac2。rac3三個節點,下面是刪除rac3節點的具體過程 1.刪除rac3節點上的數據庫實

    ORACLEORA-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

    OracleEXPDP和IMPDP數據泵進行導出導入的方法

    ant connect 對象 檢查 前三 logfile cli dmp 嚴重 一、expdp/impdp和exp/imp的區別 1、exp和imp是客戶端工具程序,它們既可以在客戶端使用,也可以在服務端使用。 2、expdp和impdp是服務端的工具程序,他們只能在or

    OracleOVER(PARTITION BY)函數用法

    指定 union 計算方法 line ron 方法 判斷 ffd 使用 OVER(PARTITION BY)函數介紹 開窗函數 Oracle從8.1.6開始提供分析函數,分析函數用於計算基於組的某種聚合值,它和聚合函數的不同之處是:對於每個組返回

    Oracle-初識PL/SQL

    ·· lar 字符 ant 錯誤處理 當前 之前 嵌套 查詢 在最近的工作中要用到存儲過程和函數,索性把PL/SQL整體的看一下。之前看過基本書和園子裏的博文,在這裏將所學簡單總結。 一、基本語句   1、大小寫   2、分隔符 -- ;   3、引用字符串

    OracleOGG單向復制配置

    sequence make pcs 。。 pat host ext cts testin 實驗環境: 源端: Ip:192.168.40.10 DataBase:O

    OracleOracle Database 12c Release 2安裝多圖詳解

    Oracle12c2版數據庫安裝1.1 下載安裝包 oracle官網地址請自行百度oracle,51CTO內容限制不讓我放!1)打開官方網站,找到下載連接,如圖所示。2)選擇更多下載。3)選擇數據庫版本,這裏選擇的是目前的最新版本4)接收許可協議,選在linux版本進行下載5) 接收許可協議,點擊linuxx

    ORACLEWin2008R2修改oracle數據庫實例名

    cal mat tar 文件創建 sysaux locks art sys db_name 需求說明:要求將windows平臺的數據庫實例名由orcl改為haha 參考: https://www.cnblogs.com/junnor/archive/2013/03/0