没有合适的资源?快使用搜索试试~ 我知道了~
首页SAS中的SQL语句完全教程.doc
资源详情
资源评论
资源推荐
SAS 中的 SQL 语句完全教程之一:SQL 简介与基本查询功能
(2009-04-14 09:10:39)
转载
标签:
sas
sql
查询
教育
分类:SQL
SAS 中的 SQL 语句完全教程之一:SQL 简介与基本查询功能
本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》
为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链
接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学
习,不得用于商业目的,否则后果自负。
转载请注明出处:http://blog.sina.com.cn/s/blog_5d3b177c0100cksl.html
1 SQL 过程步介绍
1.1 SQL 过程步可以实现下列功能:
查询 SAS 数据集、从 SAS 数据集中生成报表、以不同方式实现数据集合并、创建或删除
SAS 数据集、视图、索引等、更新已存在的数据集、使得 SAS 系统可以使用 SQL 语句、
可以和 SAS 的数据步进行替换使用。注意,SQL 过程步并不是用来代替 SAS 数据步,也
不是一个客户化的报表工具,而是数据处理用到的查询工具。
1.2 SQL 过程步的特征
SQL 过程步并不需要对每一个查询进行重复、每条语句都是单独处理、不需要 print 过程
步就能打印出查询结果、也不用 sort 过程步进行排序、不需要 run、要 quit 来结束 SQL
过程步
1.3 SQL 过程步语句
SELECT:查询数据表中的数据
ALTER:增加、删除或修改数据表的列
CREATE:创建一个数据表
DELETE:删除数据表中的列
DESCRIBE:列出数据表的属性
DROP:删除数据表、视图或索引
INSERT:对数据表插入数据
RESET:没用过,不知道什么意思
SELECT:选择列进行打印
UPDATE:对已存在的数据集的列的值进行修改
2 SQL 基本查询功能
2.1 SELECT 语句基本语法介绍
SELECT <DISTINCT> object-item <, ...object-item>
FROM from-list
<WHERE sql-expression>
<GROUP BY group-by-item <, ... group-by-item>>
<HAVING sql-expression>
<ORDER BY order-by-item <, ... order-by-item>>;
这里 SELECT:指定被选择的列
FROM:指定被查询的表名
WHERE:子数据集的条件
GROUP BY:将数据集通过 group 进行分类
HAVING:根据 GROUP BY 的变量得到数据子集
ORDER BY:对数据集进行排序
2.2 SELECT 语句的特征
选择满足条件的数据、数据分组、对数据进行排序、对数据指定格式、一次最多查询 32
个表。这里还要提到的就是,在 SAS 系统中,对于表名和变量名一般不超过 32 个字符,
对于库名,文件引用名,格式等不能超过 8 个字符
2.3 Validate 关键字
Validate 关键字只存在于 select 语句中、可以在不运行查询的情况下测试语句的语法、
检查列名是否合法、对于不正确的查询将打印其消息。例:
1proc sql;
2validate
3 select Region, Product,Sales
4from sashelp.shoes
5where Region = 'Africa';
NOTE: PROC SQL 语句有有效语法。
6quit;
此外,我们还可以用 noexec 选项也可以用来进行语法测试。例:
7proc sql noexec;
8select Region, Product,Sales
9from sashelp.shoes
10 where Region = 'Africa';
NOTE: 由于NOEXEC 选项,未执行语句。
11quit;
这里提示未执行,未提示错误,说明该语句没有语法错误。但是如果加入一个
sashelp.shoes 表里没有字段,这里就会出现错误,例:
12proc sql noexec;
13select Region, Product,Sales,test
14from sashelp.shoes
15where Region = 'Africa';
ERROR: 以下这些列在起作用的表中没有找到: test.
16quit;
2.4 查询列
我们可以像 2.3 那样查询指定列,也可以用*来查询所有列。例:
proc sql;
select *
from sashelp.shoes;
quit;
这里我们可以用 feedback 选项来查看到底我们选择了哪些列:
17proc sql feedback;
18select *
19from sashelp.shoes;
NOTE: Statement transforms to:
select SHOES.Region, SHOES.Product, SHOES.Subsidiary,
SHOES.Stores, SHOES.Sales, SHOES.Inventory, SHOES.Returns
from SASHELP.SHOES;
20quit;
这时,我们可以看到从 sashelp.shoes 表中选择了 8 个列
2.5 消除重复值
我们可以用 distinct 选项来消除重复值。例如,我们要得到没有重复的所有地区的名称:
procsql;
select distinct Region
from sashelp.shoes
quit;
2.6 where 子集查询
2.6.1 比较运算符
先列出 where 语句用到的比较运算符:
LT<小于
GT>大于
EQ=等于
LE<=小于或等于
GE>=大于或等于
NE^=不等于
例如,我们要查询 sales 大于 100000 的所有数据:
procsql;
select *
from sashelp.shoes
where sales>100000;
quit;
2.6.2 in:只要满足 in 里的任意一个值,表达式即为真,例如,我们要选择 Region 在
Africa 和 Eastern Europe 的所有数据:
procsql;
select *
from sashelp.shoes
where Region in ('Africa','Eastern Europe');
quit;
2.6.3 逻辑运算符
OR|或
AND&是
NOT^非
例如,选择 Region 在 Africa 和 Eastern Europe,且销售额大于 100000 的所有数据:
procsql;
select *
from sashelp.shoes
where Region in ('Africa','Eastern Europe') andsales>100000;
quit;
2.6.4 CONTAINS 或?:判断某列是否包含指定字符串
例如,选择列 Region 包含’Afr’的数据:
procsql;
select *
from sashelp.shoes
where Region ? 'Afr';
quit;
2.6.5 IS NULL 或 IS MISSING:判断某列数据是否为空
例如,如果找出 Region 为空的数据:
procsql;
select *
from sashelp.shoes
where Region is missing;
quit;
注意,这里我们还可以用以下表达式对 where 语句进行替换。如果 region 为数值型变量,
则可以用 region=.,如果 region 为字符型变量,则可以用 region= ‘’进行替换。
2.6.6 Between and:选择某一区间的数据
例如选择 sales 大于 100000,但小于 200000 的所有数据:
procsql;
select *
from sashelp.shoes
where sales between100000and200000;
quit;
2.6.7 like:判断是否能匹配某些字符
例如,选择以 region 以 A 开头的所有地区
procsql;
剩余29页未读,继续阅读
zys800228
- 粉丝: 4
- 资源: 99
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0