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

如何用SAS宏實(shí)現(xiàn)Oracle中的decode函數(shù)?

數(shù)據(jù)庫 Oracle
decode函數(shù)是Oracle PL/SQL的功能強(qiáng)大的函數(shù)之一,那么可不可以用宏來實(shí)現(xiàn)它呢?答案是可定的,本文我們主要就介紹了用SAS宏實(shí)現(xiàn)Oracle中的decode函數(shù)的過程,希望能夠?qū)δ兴鶐椭?/div>

Oracle數(shù)據(jù)庫中的decode函數(shù)是Oracle PL/SQL的常用函數(shù)之一,那么它的用途是什么呢?接下來我們就介紹這一過程以及如何用SAS宏來實(shí)現(xiàn)Oracle數(shù)據(jù)庫中的decode功能。

先構(gòu)造一個(gè)例子,假設(shè)我們想給智星職員加工資,其標(biāo)準(zhǔn)是:工資在8000元以下的加20%;工資在8000元或以上的加15%,通常的做法是,先選出記錄中的工資字段值? select salary into var-salary from employee,然后對(duì)變量var-salary用if-then-else或choose case之類的流控制語句進(jìn)行判斷。 如果用decode函數(shù),那么我們就可以把這些流控制語句省略,通過SQL語句就可以直接完成。

SAS宏實(shí)現(xiàn)方法:

  1. %macro decode /PARMBUFF;  
  2. %local i count ifn valuen countall currfeild valueelse;  
  3. %let countall=%sysfunc(countw(&SYSPBUFF,%quote(,)));  
  4. %let count=%eval((&countall-1)/2);  
  5. %let currfeild=%scan(%quote(&SYSPBUFF),1);  
  6. case &currfeild   
  7. %do i=1 %to &count;  
  8. %let ifn=%scan(%quote(&SYSPBUFF),%eval(&i*2));  
  9. %let valuen=%scan(%quote(&SYSPBUFF),%eval(&i*2+1));  
  10. when &ifn then &valuen  
  11. %end;  
  12. %if %eval(&countall>(&count+1)) %then %do;  
  13. %let valueelse=%scan(%quote(&SYSPBUFF),&countall);  
  14. else &valueelse  
  15. %end;  
  16. end  
  17. %mend; 

 

調(diào)用代碼如下,和oracle的調(diào)用方式和功能實(shí)現(xiàn)基本上都是一樣的。

  1. proc sql;  
  2. create table test as   
  3. select   
  4. %decode(sex,"男",0,"女",1,2)  
  5. as abc  
  6. from sashelp.class;  
  7. quit; 

 

以上就是Oracle數(shù)據(jù)庫中decode函數(shù)的用途以及用SAS宏實(shí)現(xiàn)decode函數(shù)的方法,本文我們就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. Oracle數(shù)據(jù)庫學(xué)習(xí)筆記之表的聯(lián)合查詢
  2. Oracle數(shù)據(jù)庫RMAN不完全恢復(fù)之基于SCN恢復(fù)
  3. Oracle數(shù)據(jù)庫RMAN不完全恢復(fù)之基于時(shí)間恢復(fù)
  4. Oracle C#實(shí)現(xiàn)Oracle Text全文檢索的簡單例子
  5. Oracle數(shù)據(jù)庫RMAN不完全恢復(fù)之基于日志序列號(hào)恢復(fù)
責(zé)任編輯:趙鵬 來源: CSDN博客
相關(guān)推薦

2010-11-04 11:45:10

Oracle DECO

2010-04-27 12:51:49

Oracle 函數(shù)de

2010-05-10 18:22:28

Oracle deco

2010-10-25 17:00:40

Oracle deco

2010-04-01 09:56:44

Oracle DECO

2023-10-26 11:03:50

C語言宏定義

2010-04-28 16:53:20

Oracle 函數(shù)

2010-11-18 15:46:41

Oracle Deco

2009-03-24 13:04:55

匯總組織結(jié)構(gòu)Oracle

2010-09-06 16:40:52

SQL函數(shù)

2010-04-26 16:51:11

Oracle Deco

2011-09-01 10:09:31

OracleDECODE常用窗口函數(shù)

2011-08-11 17:56:00

Oracle數(shù)據(jù)庫decodesign

2011-07-13 14:02:42

OracleExcel

2010-04-20 14:06:56

Oracle SQL語

2011-07-22 13:22:10

Java.NETDataTable

2010-10-25 10:10:08

oracle函數(shù)

2009-03-26 09:24:36

Oracle外鍵數(shù)據(jù)庫

2011-03-15 09:10:47

iptablesNAT

2010-04-21 13:21:24

Oracle時(shí)間
點(diǎn)贊
收藏

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