Oracle数据库中的实现decode函数是Oracle PL/SQL的常用函数之一,那么它的何用S宏函数用途是什么呢?接下来我们就介绍这一过程以及如何用SAS宏来实现Oracle数据库中的decode功能。
先构造一个例子,实现假设我们想给智星职员加工资,何用S宏函数其标准是实现:工资在8000元以下的加20%;工资在8000元或以上的加15%,通常的何用S宏函数做法是,先选出记录中的实现工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else或choose case之类的何用S宏函数流控制语句进行判断。 如果用decode函数,实现那么我们就可以把这些流控制语句省略,何用S宏函数通过SQL语句就可以直接完成。实现
SAS宏实现方法:
- %macro decode /PARMBUFF;
- %local i count ifn valuen countall currfeild valueelse;
- %let countall=%sysfunc(countw(&SYSPBUFF,何用S宏函数%quote(,)));
- %let count=%eval((&countall-1)/2);
- %let currfeild=%scan(%quote(&SYSPBUFF),1);
- case &currfeild
- %do i=1 %to &count;
- %let ifn=%scan(%quote(&SYSPBUFF),%eval(&i*2));
- %let valuen=%scan(%quote(&SYSPBUFF),%eval(&i*2+1));
- when &ifn then &valuen
- %end;
- %if %eval(&countall>(&count+1)) %then %do;
- %let valueelse=%scan(%quote(&SYSPBUFF),&countall);
- else &valueelse
- %end;
- end
- %mend;
调用代码如下,和oracle的调用方式和功能实现基本上都是一样的。
- proc sql;
- create table test as
- select
- %decode(sex,"男",0,"女",1,2)
- as abc
- from sashelp.class;
- quit;
以上就是Oracle数据库中decode函数的用途以及用SAS宏实现decode函数的方法,本文我们就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】
(责任编辑:娱乐)
欧洲企业积极寻找“中国合伙人” 瞄准中国中等收入阶层谋求新的发展良机
2018年8月8日复兴号将在京津城际铁路实现时速350公里运行