首页 >

用SAS宏实现Oracle中的decode函数

数据库|mysql教程用SAS宏实现Oracle中的decode函数
Oracle教程,用SAS宏实现Oracle中的decode
数据库-mysql教程
网狐6603 捕鱼源码,ubuntu 网络安全,tomcat安装版测试,爬虫rss制作,php学什么项目好,违规seolzw
DECODE函数是ORACLE PL/SQL的功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能
h5留言源码,vscode 打开网页,ubuntu部署环境,tomcat临时目录文件,爬虫厂商,html 输出php变量,临汾seo推广价格优惠,好看的个人相册网站源码,淘宝手机官网网站模板下载lzw
简单的winform登陆验证源码,vscode写sass,ubuntu gccc,tomcat日志定位,qt5中sqlite,大漠插件 文本操作,支持IE11的前端框架,2022年广州爬虫展会门票,php 调用非静态方法,辽宁seo快速优化,php分享网站模板下载不了,网页flv播放器插件,.net三层架构模板lzw

函数介绍

DECODE函数是Oracle PL/SQL的功能强大的函数之一,,目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能。DECODE有什么用途呢? 先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的加20%;工资在8000元或以上的加15%,通常的做法是,先选出记录中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else或choose case之类的流控制语句进行判断。 如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完成。

看用SAS怎么实现吧,就是这么一个小小的宏,就实现了所谓其他数据库都不能实现的功能,

%macro decode /PARMBUFF;
%local i count ifn valuen countall currfeild valueelse;
%let countall=%sysfunc(countw(&SYSPBUFF,%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;


用SAS宏实现Oracle中的decode函数
  • Oracle创建用户并设置权限
  • Oracle创建用户并设置权限 | Oracle创建用户并设置权限 ...

    用SAS宏实现Oracle中的decode函数
  • Oracle数据库索引失效
  • Oracle数据库索引失效 | Oracle数据库索引失效 ...

    用SAS宏实现Oracle中的decode函数
  • 用于将Oracle外键屏蔽的SQL
  • 用于将Oracle外键屏蔽的SQL | 用于将Oracle外键屏蔽的SQL ...