自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle Decode函數(shù)的主要功能介紹

數(shù)據(jù)庫 Oracle
以下的文章主要是介紹Oracle Decode函數(shù)的實(shí)際應(yīng)用,其中包括對(duì)Decode的主要功能的介紹,以下就是文章的介紹。望你會(huì)有所收獲。

提及Oracle Decode函數(shù),那么DECODE的主要用途是什么呢?我們先要構(gòu)造一個(gè)相關(guān)的例子,假如我們想給某公司的職員增加工資的話,所定的標(biāo)準(zhǔn)為,工資少于8000元的將加20%;工資在8000元以上的加15%,通常的做法是,先選出記錄 中的工資字段值?

 

  1. select salary into var-salary from employee 

然后對(duì)變量var-salary用if-then-else或choose case之類的流控制語句進(jìn)行判斷。

如果用Oracle DECODE函數(shù),那么我們就可以把這些流控制語句省略,通過SQL語句就可以直接完成。如下:

 

  1. select decode(sign(salary - 8000),1,
    salary*1.15,-1,salary*1.2,salary from employee 

是不是很簡(jiǎn)潔?

DECODE的法:

 

  1. DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 

表示如果value 等于if1時(shí),DECODE函數(shù)的結(jié)果返回then1,...,如果不等于任何一個(gè)if值,則返回else。初看一下,DECODE 只能做等于測(cè)試,但剛才也看到了,我們通過一些函數(shù)或計(jì)算替代value,是可以使Oracle DECODE函數(shù)具備大于、小于或等于功能。

1、比較大小 select decode(sign(變量1-變量2),-1,變量1,變量2) from dual; --取較小值 sign()函數(shù)根據(jù)某個(gè)值是0、正數(shù)還是負(fù)數(shù),分別返回0、1、-1 例如: 變量1=10,變量2=20 則sign(變量1-變量2)返回-1,decode解碼結(jié)果為“變量1”,達(dá)到了取較小值的目的。

2、表、視圖結(jié)構(gòu)轉(zhuǎn)化

現(xiàn)有一個(gè)商品銷售表sale,表結(jié)構(gòu)為:

month  char(6)  --月份

sellnumber(10,2) --月銷售金額

現(xiàn)有數(shù)據(jù)為:

2000011000

2000021100

2000031200

2000041300

2000051400

2000061500

2000071600

2001011100

2002021200

2003011300

想要轉(zhuǎn)化為以下結(jié)構(gòu)的數(shù)據(jù):

year char(4)  --年份

month1number(10,2) --1月銷售金額

month2number(10,2) --2月銷售金額

month3number(10,2) --3月銷售金額

month4number(10,2) --4月銷售金額

month5number(10,2) --5月銷售金額

month6number(10,2) --6月銷售金額

month7number(10,2) --7月銷售金額

month8number(10,2) --8月銷售金額

month9number(10,2) --9月銷售金額

month10number(10,2) --10月銷售金額

month11number(10,2) --11月銷售金額

month12number(10,2) --12月銷售金額

結(jié)構(gòu)轉(zhuǎn)化的SQL語句為:

 

  1. create or replace view  
  2. v_sale(year,month1,month2,month3,month4,month5,
    month6,month7,month8,month9,month10,month11,month12)  
  3. as  
  4. select  
  5. substrb(month,1,4),  
  6. sum(decode(substrb(month,5,2),'01',sell,0)),  
  7. sum(decode(substrb(month,5,2),'02',sell,0)),  
  8. sum(decode(substrb(month,5,2),'03',sell,0)),  
  9. sum(decode(substrb(month,5,2),'04',sell,0)),   

上述的相關(guān)內(nèi)容就是對(duì)Oracle Decode函數(shù)的描述,希望會(huì)給你帶來一些幫助在此方面。

【編輯推薦】

  1. Oracle數(shù)據(jù)庫索引的優(yōu)點(diǎn)與缺點(diǎn)簡(jiǎn)介
  2. Oracle使用游標(biāo)觸發(fā)器的實(shí)際存儲(chǔ)過程
  3. Oracle使用相關(guān)觸發(fā)器來實(shí)現(xiàn)自增ID
  4. Oracle查看和修改其最大的游標(biāo)數(shù)
  5. Oracle性能調(diào)整以及回收表空間碎片的方案

 

責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-03-05 13:53:38

Python Thre

2010-03-03 13:50:40

Python文件

2011-11-16 09:59:50

私有云云存儲(chǔ)

2009-07-07 13:45:52

JDK日志框架

2010-06-30 11:04:41

SNMP協(xié)議網(wǎng)絡(luò)管理

2010-06-01 10:52:14

IPv6交換中心

2025-02-05 07:00:00

Next.jsWeb前端

2023-12-03 18:30:12

2019-10-31 09:14:27

物聯(lián)網(wǎng)網(wǎng)關(guān)物聯(lián)網(wǎng)IOT

2016-12-02 16:00:22

服務(wù)器托管機(jī)柜

2009-12-03 13:55:10

路由器主要功能

2016-02-19 10:03:30

蘋果支付Apple Pay

2010-06-24 13:57:57

Linux Cat命令

2010-11-04 11:45:10

Oracle DECO

2010-10-25 17:00:40

Oracle deco

2009-03-08 09:15:09

Windows 7微軟功能禁用

2009-12-22 09:41:15

無線路由器

2010-01-14 17:46:29

智能交換機(jī)

2014-12-22 10:39:44

虛擬化云平臺(tái)PaaS

2009-11-20 16:33:02

備份路由器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)