Oracle 中 sign和decode 函式用法

2021-07-07 02:30:22 字數 1187 閱讀 8731

1、

sign函式語法:

sign(n);

sign函式說明:

取數字n的符號,大於0返回1,小於0返回-1,等於0返回0(n可以是表示式,(n-200))

例子: 比較大小:

a=10;

b=50;

sign(a-b) ==-1

sign(b-a) == 1

sign(a-10)==02、

decode的用法

含**釋:

decode(條件,值1,返回值1,值2,返回值2,...值n,返回值n,預設值)

該函式的含義如下:

if 條件=值1 then

return(翻譯值1)

elsif 條件=值2 then

return(翻譯值2)

......

elsif 條件=值n then

return(翻譯值n)

else

return(預設值)

end if

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

這個函式執行的結果是,當字段或字段的運算的值等於值1時,該函式返回值2,否則返回值3

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

例子: 有一張user表 這張表中有乙個***(性別)字段,但是欄位的值是1或者0,我們需求是顯示男或者女,因此處理,那麼decode就可以解決了

select decode(u.*** ,1,男,女) from user u;就可以了,

細節講一下:

decode(u.*** ,1,男,女);其實decode底層應該是這樣比較的(感覺)是u.***==1?男:女(當然if else是可以的),我想說的是decode比較的是等於,其實並不能比較》或者是< 、>=、<=、只能是等於,但是我們可以結合sign(n)函式就很方便了,因為sign()返回的就是-1,0,1,我們可以根據這三個值來判斷,例如:

比較大小:

a = 10,

b=50.

select decode(sign(a-b),1,'a>b',0,'相等',-1,'ab',0,'相等','a=1)

else if((a-b)==0)

else

因此:sign和decode用到的機率還是蠻大的

Oracle中sign函式和decode函式的使用

oracle中sign函式和decode函式的使用 1.比較大小函式sign sign x 或者sign x 叫做符號函式,其功能是取某個數的符號 正或負 當x 0,sign x 1 當x 0,sign x 0 當x 0,sign x 1 x可以是函式或計算表示式 2.流程控制函式decode 在邏...

ORACLE的sign函式和DECODE函式

一.比較大小函式 sign 函式語法 sign n 函式說明 取數字n的符號,大於0返回1,小於0返回 1,等於0返回0 示例 1 select sign 100 sign 100 sign 0 from dual sign 100 sign 100 sign 0 1 1 0 2 a 10,b 20...

ORACLE的sign函式 和 DECODE函式

b 1 比較大小函式 sign b sign 函式根據某個值是0 正數還是負數,分別返回0 1 1 例如 quote a 10,b 20 則sign a b 返回 1 quote b 2 流程控制函式 decode b decode函式是oracle pl sql是功能強大的函式之一,目前還只有or...