Search for
Login | Username Password Forgot? | Email: | Create Account
Non English | Popularity: 0 | Entries: 63 | Updated: 4h 34m ago | | Add to My Feeds
SAS分支结构之SELECT
September 1st, 2010

SAS的IF结构允许嵌套,但SAS不提供IF-ELSEIF-ELSE的多分支结构。但是SAS提供类似其它语言中的SWITCH结构的SELECT结构。
以下是SELECT结构的两种基本用法:
基本用法一:

SELECT (选择表达式);
WHEN(值列表)
语句;
WHEN(值列表)
语句;
……
OTHERWISE
语句;
END;

其中“选择表达式”是一个取数值、字符型值的变量或表达式,“值列表”为一项或多项(逗号相隔),每项可以是一个与选择表达式相同取值类型的表达式。“语句”可以是单个语句或复合语句。
执行SELECT结构时,先计算出选择表达式和值列表中的所有值,然后把选择表达式值由前向后与值列表中的值相比,发现相等值则执行对应的语句,然后退出SELECT结构(不再查看后面的值列表)。如果选择表达式的值不等于任何值列表中的值则执行OTHERWISE对应的语句,这种情况下没有OTHERWISE语句会出错。如:

SELECT(month);
	WHEN('Feb', 'Mar', 'Apr')
		PUT '春天';
	WHEN('May', 'Jun', 'Jul')
		PUT '夏天';
	OTHERWISE
		PUT '不是秋天就是冬天';
END;

基本用法二:

SELECT;
WHEN(条件)
语句;
WHEN(条件)
语句;
……
OTHERWISE
语句;
END;

这种SELECT语句没有选择表达式,而是在每个WHEN语句指定一个条件(逻辑表达式),执行第一个满足条件的WHEN后的语句。如果所有条件都不满足,则执行OTHERWISE后的语句。如:

SELECT;
	WHEN(age <= 12)
		PUT '少年';
	WHEN(age < 35)
		PUT '青年';
	OTHERWISE
		PUT '中老年';
END;

或许你会对下面这些文章感兴趣:

  • 2010年08月19日 -- SAS分支结构之IF
    如果需要在某一条件满足时执行某一操作,可以使用: IF 条件 THEN 语句;...
  • 2010年08月10日 -- SAS语言构成
    SAS程序由SAS语句构成。像其它高级编程语言一样,每个语句以分号结尾。SAS语...
  • 2010年08月9日 -- Hello SAS
    SAS程序代码: data; title www.ineeke.com;...
  • 2010年08月2日 -- 时间过得可真快
    早上,像往常一样,站在地铁车厢里,拿出手机打开UC WEB看新闻,看看日期写的是...



More from Neeke's Blog

拒绝鼠标手 10 Sep 1
Hello SAS 10 Sep 1
SAS语言构成 10 Sep 1
九月的第一篇 10 Sep 1
我能歘 10 Jul 29
关于职业规划 10 Jul 29
蛋疼的QQ群 10 Jul 29

^ Back To Top