SAS中的SQL语句大全(6)

2025-11-19

from dictionary.columns

where libname='SASHELP' and name='tabname';

quit;

注意这里是用dictionary.columns的信息

用SASHELP.VMEMBER来撮DICTIONARY.MEMBERS的信息:

proctabulate data=sashelp.vmember format=8.;

class libname memtype;

keylabel N=' ';

table libname,memtype/rts=10 misstext='None';

run;

DICTIONARY是一个非常有用的信息库,本文主要是介绍一下其基本功能,以后有时间的话会对其进行详细介绍。

3 SQL过程步与宏语言的交互

SQL过程步可以创建SAS宏变量,也可以生成一些自动的宏变量,从其中可以更好地理解SQL处理过程。

3.1 在SQL过程中使用宏变量

%let outputnumber=10;

procsql outobs=&outputnumber;

options nolabel nocenter;

select * from dictionary.tables

where libname='SASHELP';

quit;

这个很简单,就不讲了,下面讲一下本节的重点。

3.2 创建宏变量

SQL过程步可以通过into语句来创建或更新宏变量,主要有三种方式。这里要注意的是,在使用into语句创建宏变量时,我们是不能在create table或create view语句里使用的。当我们不需要输出结果时,可以用noprint选项。

3.2.1 结果只有一行

Select col1,col2,…

Into :mvar1,:mvar2,…

From …

例:

procsql noprint;

select avg(sales),min(sales),max(sales)

into :mean, :min, :max

from sashelp.shoes;

quit;

%put &mean &min &max;

这种方式适合输出结果只有一行的情况。

3.2.2 提取前N行的值

Select a,b,…

Into :a1-:an, :b1-:bn

From …

这种方法前前N行的查询结果输入到一系列的N个宏变量中。

例:

procsql noprint;

select Region,count(*) as frequency

into :Region1-:Region3, :freq1-:freq3

from sashelp.shoes

group by Region;

quit;

%put &Region1 &Region2 &Region3;

%put &freq1 &freq2 &freq3;

3.2.3 提取所有数据

Select col1,col2,…

Into :macrovar1, :macrovar2,…

Separated by ?delimiter?

From …

这里将每列的所有数据都输出到一个宏变量中,并以指定的分隔符分开。

例:

procsql noprint;

select distinct Region

into :RegionAll

separated by ','

from sashelp.shoes;

quit;

%put &RegionAll;

3.3 SQL过程步自动产生的宏变量

SQLOBS:记录输出结果或被删除的观测值个数

SQLRC:包含每个SQL语句的返回代码

SQLOOPS:包含SQL过程步内循环的次数

例:

procsql;

select *

from sashelp.shoes;

quit;

%put &SQLOBS;

得到输出观测的条数。

4 程序测试与效率

这里主要介绍几个SQL过程步的选项:

Exec/Noexec:控制SQL语句是否执行

Nostimer/Stimer:在SAS日志中报告每个SQL语句的效率统计数据

Noerrorstop/Errorstop:批处理时控制当有错误发生时,是否要检查语法

例:noexe与feedback


SAS中的SQL语句大全(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2024数模校内选拔赛赛题(中南财经政法大学)

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219