欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle中decode函數(shù)用法

 更新時間:2021年12月17日 14:50:49   作者:qichangjian  
本文詳細講解了Oracle中decode函數(shù)的用法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

1.decode函數(shù)的兩種形式

第一種形式

含義解釋:

decode(條件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

該函數(shù)的含義如下:

IF 條件=值1 THEN
    RETURN(翻譯值1)
ELSIF 條件=值2 THEN
    RETURN(翻譯值2)
    ......
ELSIF 條件=值n THEN
    RETURN(翻譯值n)
ELSE
    RETURN(缺省值)
END IF

第二種形式

decode(字段或字段的運算,值1,值2,值3)

這個函數(shù)運行的結果是,當字段或字段的運算的值等于值1時,該函數(shù)返回值2,否則返回值3

當然值1,值2,值3也可以是表達式,這個函數(shù)使得某些sql語句簡單了許多

sign()函數(shù)

解釋:

sign()函數(shù)根據(jù)某個值是0、正數(shù)還是負數(shù),分別返回0、1、-1

用法示例:

select id,sign(id-2) from t_decode;

截圖效果:

lpad()函數(shù)

在字段id前邊補字段0 長度為2

select lpad(id,2,0) from t_decode;

2.decode的一些工作常用思路總結

a.準備測試數(shù)據(jù)

創(chuàng)建測試表t_decode,并插入測試數(shù)據(jù)

//創(chuàng)建表,插入數(shù)據(jù),查詢
create table t_decode(
       id integer,
       name varchar2(10)
);

//插入數(shù)據(jù)
insert into t_decode values (1,'a');
insert into t_decode values (2,'b');
insert into t_decode values (3,'c');
insert into t_decode values (4,'a');

數(shù)據(jù)樣式

b.第一種形式decode函數(shù)的常用思路

1. 簡單使用:判斷字符串

select id,name,
	decode(id,1,'第一個',2,'第二個',3,'第三個','沒有') new_id 
from t_decode;

2.使用decode函數(shù)分段

判斷表中id大小并根據(jù)大小劃分不同范圍

(-,2) low

[2,4) mid

[4,-] high

select id,name,
   decode(sign(id - 4),1,'high id',0,'high id','-1',
                          decode(sign(id - 2),1,'mid id',0,'mid id',-1,'low id'))
from t_decode; 

c.第二種形式decode函數(shù)的常用思路

1. 比較大小

-- 比較大小
select decode(sign(100-90),-1,100,90) from dual;

2. 使用表達式來搜索字符串

判斷name中是否含有a?

select id,name,decode(instr(name,'a'),0,'不含有a','含有a') as info from t_decode;

3. 實現(xiàn)行列轉換

注意:decode相當于:case when then else end語句

select 
	sum(decode(name,'a',id,0)) id_1,
	sum(decode(name,'b',id,0)) id_2,
	sum(decode(name,'c',id,0)) id_3 from t_decode;

添加測試:

select 
   decode(name,'a',id,0) id_1,
   decode(name,'b',id,0) id_2,
   decode(name,'c',id,0) id_3 
from t_decode;

-- 相等于:case when then else end
select 
	case name when 'a' then id else 0 end as id_1,
    case name when 'b' then id else 0 end as id_2,
    case name when 'c' then id else 0 end as id_3 
from t_decode;

4. 結合Lpad函數(shù),如何使主鍵的值自動加1并在前面補0

結合Lpad函數(shù),如何使主鍵的值自動加1并在前面補0
select lpad(decode(count(id),0,1,max(to_number(id)+1)),14,'0') new_id from t_decode;

拆分詳細講解:

select * from t_decode

select lpad(id,2,0) from t_decode

select to_number(id) from t_decode;

select max(to_number(id)+1) from t_decode;

select decode(count(id),0,1,max(to_number(id)+1)) from t_decode;

select lpad(decode(count(id),0,1,max(to_number(id)+1)),14,‘0') new_id from t_decode;

以上所述是小編給大家介紹的Oracle中decode函數(shù)用法,希望對大家有所幫助。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • Oracle配置數(shù)據(jù)庫防火墻的流程步驟

    Oracle配置數(shù)據(jù)庫防火墻的流程步驟

    數(shù)據(jù)庫防火墻用于監(jiān)控和控制對數(shù)據(jù)庫的訪問,防止未經(jīng)授權的訪問、SQL注入攻擊和其他惡意活動,以下是一個詳細的指導,展示如何使用開源的數(shù)據(jù)庫防火墻工具,如 GreenSQL,來保護 MySQL 數(shù)據(jù)庫,需要的朋友可以參考下
    2024-09-09
  • Oracle?11g+windows?環(huán)境下Ecology7系統(tǒng)安裝過程

    Oracle?11g+windows?環(huán)境下Ecology7系統(tǒng)安裝過程

    這篇文章主要介紹了Oracle?11g+windows?環(huán)境下Ecology7系統(tǒng)安裝,安裝步驟是以管理員模式運行Oracle setup.exe文件,根據(jù)提示安裝Oracle,創(chuàng)建數(shù)據(jù)庫,注意修改連接數(shù),本文給大家詳細講解,需要的朋友可以參考下
    2022-10-10
  • Oracle PL/SQL異常處理方法解析

    Oracle PL/SQL異常處理方法解析

    這篇文章主要介紹了Oracle PL/SQL異常處理方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • Oracle性能究極優(yōu)化(Oracle 性能優(yōu)化)

    Oracle性能究極優(yōu)化(Oracle 性能優(yōu)化)

    Linux Journal 發(fā)表了一篇優(yōu)化 Oracle 數(shù)據(jù)庫的文章,感覺十分的有用。簡要介紹其摘要和大家共同分享 Linux 在企業(yè)級數(shù)據(jù)庫上應用
    2007-03-03
  • Oracle安裝遇到INS-30131錯誤的解決方法

    Oracle安裝遇到INS-30131錯誤的解決方法

    這篇文章主要介紹了Oracle安裝遇到錯誤INS-30131的解決方法,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Oracle數(shù)據(jù)泵的導入與導出實例詳解

    Oracle數(shù)據(jù)泵的導入與導出實例詳解

    這篇文章主要給大家介紹了關于Oracle數(shù)據(jù)泵的導入與導出的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 在Oracle關閉情況下如何修改spfile的參數(shù)

    在Oracle關閉情況下如何修改spfile的參數(shù)

    大家都知道在Oracle中pfile參數(shù)是可以手動更改的,但是spfile是二進制文件所以不可以手動更改,但我最近遇到了一個問題,修改參數(shù)錯誤,導致Oracle啟動不了,一定要修改spfile該怎么辦呢?下面通過這篇文章來一起看看吧。
    2016-12-12
  • ORACLE 12C PDB 維護基礎知識介紹

    ORACLE 12C PDB 維護基礎知識介紹

    CDB和PDB是ORACLE 12C一個很亮的新特性,由于他們的引入導致傳統(tǒng)的ORACLE數(shù)據(jù)庫管理理念不少發(fā)生了改變,這里列舉了部分最基本的cdb和pdb管理方式
    2016-09-09
  • Oracle基礎:通過sqlplus執(zhí)行sql語句后的結果進行判斷

    Oracle基礎:通過sqlplus執(zhí)行sql語句后的結果進行判斷

    今天小編就為大家分享一篇關于Oracle基礎:通過sqlplus執(zhí)行sql語句后的結果進行判斷,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Oracle數(shù)據(jù)庫更新大批量數(shù)據(jù)案例

    Oracle數(shù)據(jù)庫更新大批量數(shù)據(jù)案例

    今天小編就為大家分享一篇關于Oracle數(shù)據(jù)庫更新大批量數(shù)據(jù)案例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10

最新評論