欢迎来到天天文库
浏览记录
ID:39010715
大小:558.31 KB
页数:27页
时间:2019-06-23
《SQL从多个表中检索数据》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第21章SQL从多个表中检索数据清华大学经管学院朱世武Zhushw@sem.tsinghua.edu.cnResdat样本数据:www.resset.cnSAS论坛:www.resset.cn本章内容:使用连接从多个表中选取数据;使用子查询通过表与表之间的联系选取数据;使用SET算符合并查询结果。如果没有另外说明,本章的PROCSQL语对表和视图都适用。使用连接语句JOIN从多个表中检索数据最基本的连接就是两个表的简单连接。例21.1表china与表usa的简单连接程序:procsql;select*fromresdat.china,resdat.us
2、a;quit;levelchinalevelusa---------------------------------------------0c011u000c012u010c012u020c013u030c014u041c021u001c022u011c022u021c023u031c024u042c031u002c032u012c032u022c033u032c034u043c041u003c042u013c042u023c043u033c044u04JOIN方式分类通常连接Join方式分为两种类型:内部join,只返回连接表中匹配连接条件的行。外
3、部join,是内部连接的补充,还包括除内部连接部分以外不符合连接条件的行。外部连接分三种:left左连接,right右连接andfull完全连接。内部连接数据格式Procsql;Selectobject-itemfromtable-name<alias>,table-name<alias>Wheresql-expression;例21.2只对相同水平的运动员进行连接。procsql;select*fromresdat.china,resdat.usawherechina.level=usa.level;quit;levelchinale
4、velusa-----------------------------------------------1c021u002c032u012c032u023c043u03使用表的别名通常的查询时会遇到两个表有相同名字的列,为了在引用时不产生混淆,需要在列名前加上表名或者表的别名。语句格式:Fromtable-nametable-alias,procsql;select*fromresdat.chinaasa,resdat.usaasbwherea.level=b.level;quit;使用
5、关键词INNERJOIN的内部连接语句格式:Fromtable-nameJOINtable-nameONsql-expressionprocsql;select*fromresdat.chinaainnerjoinresdat.chinabona.level=b.level;orderbylevel;quit;关键词INNERJOIN用于连接多个表的数据。关键词inner是可选的,语句中用ON代替了原来设定匹配条件的where语句。从多于两个表的数据集中查询数据例21.6简单的多表连接。procsqloutobs=3;selecta.s
6、tkcd,b.lstknm,c.clprfromresdat.sampstka,resdat.lstkinfob,resdat.qttndistcwherea.stkcd=b.stkcdandb.stkcd=c.stkcdanda.stkcd=c.stkcd;quit;股票代码
7、Sto最新股票名称
8、收盘价
9、CloseckCodeLatestStockNamePrice-----------------------------------------------------------------------000002万科A15.52000002万科A
10、15.57000002万科A15.48不同形式的外部连接语句格式Fromtable-nameLEFTJOIN
11、RIGHTJOIN
12、FULLJOIN左外部连接procsql;select*fromresdat.chinaaleftjoinresdat.usabona.level=b.level;quit;levelchinalevelusa--------------------------------------------------0c01.1c021u002c032u022c032u013c043u03结果比以前的内部连接多了一行,该行就是Tab
13、lechina与Tableusa不匹配的行,不匹配行中Tableusa的列为缺失值。右外部连接
此文档下载收益归作者所有