if语句和where语句是SAS中最常用的逻辑判断语句,主要用于数据筛选和条件赋值。当进行多分支的条件判断时,可以使用if...else语句来实现。如下:

if .<AGE<18 then AGEGR1N=1;else if 18<=AGE<=40 then AGEGR1N=2;else if 41<=AGE<=64 then AGEGR1N=3;else if 65<=AGE<=75 then AGEGR1N=4;else if AGE>75 then AGEGR1N=5;
AGEGR1=choosec(AGEGR1N,'18yr以下','18-40yr','41-64yr','65-75yr','75yr以上');

理论上,else的语句可以无限长,囊括所有条件判断和操作,但如果条件判断过多,为了简化程序,可以使用select语句,其语法如下:

select;when(条件1) 操作语句1;when(条件2) 操作语句2;...otherwise 操作语句n;
end;

该语句的用途是根据某变量不同的值(值1,值2,…)进行不同的操作,最后以otherwise设定when语句没有包含的情况下的操作。可以用在计划外其他检查中存在有实验室检查指标的值时,例如:

data fa(where=(^missing(LBCAT)));format LBTEST LBTESTCD LBORRES LBSTRESU $200.;length LBTEST LBTESTCD LBORRES LBSTRESU $200.;set raw.fa(in=a rename=(FACLSIG=LBCS FACAT=LBCAT FAORRES=LBORRES FAORRESU=LBSTRESU FADESC=ADES));if a then do;select(FATEST);when('嗜酸细胞百分比') do;LBTEST='嗜酸细胞百分比'; LBTESTCD='EO'; end;when('RBC-M红细胞(高倍视野)') do;LBTEST='红细胞(高倍视野)'; LBTESTCD='URBC'; end;when('WBC-M白细胞(高倍视野)') do;LBTEST='白细胞(高倍视野)'; LBTESTCD='UWBC'; end;when('高密度脂蛋白胆固醇') do;LBTEST='高密度脂蛋白胆固醇'; LBTESTCD='HDL'; end;when('天门冬氨基酸基转移酶') do;LBTEST='天门冬氨基酸基转移酶'; LBTESTCD='AST';end;when('丙氨酸氨基转移酶') do;LBTEST='丙氨酸氨基转移酶'; LBTESTCD='ALT'; end;when('γ-谷氨酰基转移酶') do;LBTEST='γ-谷氨酰基转移酶'; LBTESTCD='GGT'; end;other LBCAT='';end;end;
run;

除了if语句和select语句,where语句也能达成类似的功能。需要注意的是,where语句只能用于数据筛选,而不能用于条件赋值。

if语句是在PDV执行之后才执行,针对待处理数据进行筛选或赋值,而where语句是在PDV执行之前就已经被执行,当数据被读取至缓冲区的时候就已经被筛选完成。

if与where在应用时的更多差别如下所示:

if where
执行在PDV之后 执行在PDV之前
在by语句之后执行 在by语句之前执行
data步创建的变量可以在接下来的if语句中被使用 data步创建的变量无法被where使用,因为where语句在变量创建前已经执行
执行速度比where慢 执行速度更快,因为在待处理数据创建前已经筛选部分数据

SAS编程|if语句/where语句/select语句相关推荐

  1. SQL语句--INSERT INTO SELECT 语句用法示例

    通过 SQL,您可以从一个表复制信息到另一个表. INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中. SQL INSERT INTO SELECT 语句 I ...

  2. 将insert语句转化为select语句,进行校验,验证是否插入成功

    前言   公司的测试和运维不太懂sql,每次将sql文件交给他们到测试或者生产数据库中执行sql的时候,他们都是全部执行,不看是否执行成功.因此,就会导致有些insert语句没有执行成功,等到功能验证 ...

  3. SELECT语句定义和Select语句完整的执行顺序

    SELECT语句定义: 一个完成的SELECT语句包含可选的几个子句.SELECT语句的定义如下:<SELECT clause> [<FROM clause>] [<WH ...

  4. php的select case语句,调用不同SELECT语句的MySQL IF / CASE语法

    我在使用MySQL的IF或CASE语法时遇到问题 该过程如下所示: 我有一个PHP项目调用MySQL查询,比方说PHP传递了变量X. 如果X不为0,则它​​应该执行类似以下的查询: SELECT * ...

  5. select sqlite 唯一_SQLite Select 语句

    SQLite Select 语句 SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据.这些结果表也被称为结果集. 语法 SQLite 的 SELECT ...

  6. SQLite Select 语句(http://www.w3cschool.cc/sqlite/sqlite-select.html)

    SQLite Select 语句 SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据.这些结果表也被称为结果集. 语法 SQLite 的 SELECT ...

  7. GBase 8s SQL 指南:教程———6编写高级SELECT语句

    6编写高级SELECT语句 本章中增大了使用SELECT语句可执行的操作的范围.并使您能够执行更复杂的数据库查 询和数据处理.编写SELECT语句着重于SELECT语句语法中的五个子句.本章添加了 G ...

  8. SQL基础学习总结:3(select语句基础算术运算符比较运算符)

    select语句基础 列的查询 从表中选取数据时需要使用select语句,通过select语句查询并选取出必要数据的过程称为匹配查询或查询. 语法结构如下: select <列名1>,&l ...

  9. mysql源码如何解析where字句_MySQL解析器源码分析--对select语句中子查询处理逻辑的分析(一)...

    背景 一个最简单的select语句包含select子句.from子句.where子句等,这些子句都不包含子查询(subselect),也没有union操作.而复杂的select语句包含select子句 ...

  10. mysql 查询指定字段数据_MySQL使用select语句查询指定表中指定列(字段)的数据

    本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...

最新文章

  1. 协整检验r语言代码_R语言学习笔记(一):时间序列分析
  2. 判断图片下载是否成功 file_exists和filesize 图像0KB问题
  3. Visual Studio中没有为此解决方案配置选中要生成的项目
  4. 一行Java代码实现获取上传文件的后缀名
  5. mysql什么时候用in,什么时候用exists
  6. QT的QMatrix类的使用
  7. java对响应数据做封装_1000种对Java的响应没有死
  8. C# 学习之路--百度网盘爬虫设计与实现(一)
  9. java单元测试面试,Java必备!JUnit面试题和答案汇总
  10. php 日期转毫秒_高性能的PHP日志系统 SeasLog 使用
  11. android支付宝开放平台开发,支付宝开放平台支付更新升级全解析
  12. PHP云购源码附教程(源码)
  13. windows10系统下以管理员身份进入CMD(命令提示符)的三种方法
  14. Maven 使用入门
  15. 软路由ros(MIKROTIK)安装教程:[11]端口映射
  16. 华师在线计算机网络,华师在线-作业计算机网络.docx
  17. 将无线鼠标改造成有线鼠标
  18. 假设有一个字类型的数值arry1,试编写程序统计arry1数值及其后若干数值,在字单元中存储时每个数据中含“1”数据位的个数,并将统计结果保存在res1数组中。数据段的代码定义如下: data seg
  19. 工信部新规本月底施行 未经用户同意发送商业短信将被罚款
  20. android 录制mp4格式,Android系统如何录制屏幕(录制成mp4格式)

热门文章

  1. excel函数公式透视表案例--车辆保养统计分析及预测案例
  2. 机器学习笔记:卡尔曼滤波
  3. 跟随自己,让自己的灵魂做主
  4. C++中cos,sin,asin,acos这些三角函数操作
  5. hp vse虚拟服务器,HP9000用户升级硬件平台的捷径
  6. 数学与神经网络关系大吗,神经网络与算法的关系
  7. word-wrap html,word-wrap
  8. 2020ICPC济南K Kth Query
  9. 4种改善类别不平衡的方法
  10. s7200cpu224xp手册_s7200cpu224xp模拟量转换