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


    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 

    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关键字

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

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

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

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

     

    单独加上all关键字

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

    单独加上corr关键字

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

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

    同时加上all和corr

    1:先按列名删减列

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

    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.

    无关键词情况下的语法

    使用corr关键字

  • 相关阅读:
    Liunx之django项目部署
    Liunx之nginx配置
    Liunx之基础学习
    Linux之防火墙【CentOS 7】
    Linux之各程序安装
    Linux之基础命令
    攻城狮必备神注释
    Django-rbac权限
    "/var/lib/mysql/mysql.sock"不存在解决办法
    72张三国历史演变地图
  • 原文地址:https://www.cnblogs.com/yican/p/4098214.html
Copyright © 2020-2023  润新知