decode的三種用法,以及nvl 函式

2021-10-07 07:25:10 字數 1602 閱讀 9631

select lpad(p.branch_id,7,0) from prop_branch p where p.branch_id='11354'

--結果是0011354,7代表新增的長度,0是要補充的值

select case when p.claim_status='1' then ' 已認領的 '

when p.claim_status='2' then ' 已放棄起 '

else '其他'

endfrom prop_branch p 

-- decode第一種用法釋義,如果p.claim_status值為0,則顯示待認領,如果是1,則顯示已認領,用法如case when then else end

select decode(p.claim_status,0,'待認領 ',1,'已認領 ',2,'已放棄 ','其他') from prop_branch p

-- decode第二種用法釋義 比較大小 ,當字段或字段的運算的值等於值-1時,該函式返回值2,否則返回值3

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

select decode(sign(100-90),-1,100,90) from dual;

--用法同第二種用法類似

select decode(p.business_service_name,'耿淑萍','包含','不包含 '),p.business_service_name from prop_branch p;

-- decode第三種用法釋義,行專列,使用decode統計待認領和已認領的資料

select sum(decode(p.claim_status,'0',1,0)) as wait, sum(decode(p.claim_status,'1',1,0)) as overs from  prop_branch p 

--結果是:    1    38

一、nvl()函式介紹

1.nvl函式是乙個空值轉換函式。

該函式的目的是把乙個空值(null)轉換成乙個實際的值。

2.兩種用法

用法一(1)格式:nvl(表示式1,表示式2)

(2)功能:如果表示式1為空值,nvl返回值為表示式2的值,否則返回表示式1的值。

(3) 注意:其表示式的值可以是數字型、字元型和日期型。但是表示式1和表示式2的資料型別必須為同乙個型別。

對數字型: nvl(comm,0);

對字元型 nvl( to_char(comm), 'no commission')

對日期型 nvl(hiredate,' 31-dec-99')

其中comm為你需要判斷是否為空的列名

123456

用法二(1)格式:nvl2(表示式1,表示式2,表示式3)

(2)功能:如果表示式1為空,返回值為表示式3的值。如果表示式1不為空,返回值為表示式2的值。

(3)樣例:

nvl2(comm,'sal+comm',sal)

如果comm為空,就返回sal 的值。如果 comm 不為空(null),就返回表示式 sal+comm的值。 

123.一種功能

自己總結了一下nvl()函式的功能,方便記憶:第乙個表示式的值如果為null,就返回最後乙個表示式的值。

theano function的三種用法

import numpy as np import theano.tensor as t import theano activation function example啟用函式的例子 x t.dmatrix x s 1 1 t.exp x np.exp 這是乙個啟用函式的式子 logistic ...

Mysql casewhen的三種用法

case when 的三種用法 1.case 字段 when 欄位的具體值。select a.case name when 流浪 then 法師 else 戰士 end as 型別 from c 20170920 a 2.case when 字段,這個可以對欄位進行取範圍。select a.case...

java this 三種用法

public class thisdemo class student override public string tostring 列印結果 student name null,age 0 賦值沒有成功,說明 name 區域性變數 name 區域性變數 而不是name 成員變數 name 區域性...