码迷,mamicode.com
首页 > 数据库 > 详细

sas中的sql(5) 纵向操作数据集 Except、Intersect、Union、OuterJoin

时间:2014-11-15 00:05:33      阅读:739      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   使用   sp   strong   数据   

SQL进行纵向操作的基本语法

proc sql;
select *
from table1
set-operator <all> <corr>
select *
from table2
set-operator <all> <corr>
select *
from table3;

1:几种set操作符 Except、Intersect、Union、OuterJoin 

bubuko.com,布布扣

bubuko.com,布布扣

Except、Intersect、Union三种set符号是默认进行unique处理,当进行unique处理时会进行如下两步操作

1. PROC SQL eliminates duplicate (nonunique) rows in the tables.
2. PROC SQL selects the rows that meet the criteria and, where requested, overlays columns.

当进行的操作同时需要展现unique和duplicate行时则只会进行第二步,忽略第一步。

 

Except、Intersect、Union三种set符号对于列的处理时按位置操作,不管对应列的名称(有别名的根据别名来)是否相同。当重叠时,按第一张表的名称命名当前列,如果无名称则以第二张表对应列的名称来命名。

第一张表和第二张表对应列的数据类型必须相同,否则无法进行操作

OuterJoin不会覆盖列

 

Corr和All关键字

bubuko.com,布布扣

2.1:Except(默认列对应位置操作)

默认情况下此过程分两步进行

1:进行unique,将one中重复的行删除。

2:对照one two,将one在two中的行删除。

 bubuko.com,布布扣

单独加上all关键字

不进行unique步,保持原样直接筛选。(省略第一步可以提高效率)

bubuko.com,布布扣

单独加上corr关键字

按列名进行合并,不同列名全部删除。

进行unique步骤,再将two在one中的相同行进行删除

bubuko.com,布布扣

同时加上all和corr

1:先按列名删减列

2:不进行unique,保留重复行,然后再在one中删除two中有的行。

bubuko.com,布布扣

 

 

2.2:intersect 语法一样,具体不懂再翻阅资料

2.3:union 语法一样,具体不懂再翻阅资料 union对非all的数据集会进行排序

2.4:outer Union(本来就有all的性质,所以无法和all一起使用)

1:selecting all rows (both unique and nonunique) from both tables

2:not overlaying columns.

 

无关键词情况下的语法

bubuko.com,布布扣

使用corr关键字

bubuko.com,布布扣

 

sas中的sql(5) 纵向操作数据集 Except、Intersect、Union、OuterJoin

标签:style   blog   http   io   color   使用   sp   strong   数据   

原文地址:http://www.cnblogs.com/yican/p/4098214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!