0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用proc sql生成宏变量?

冬至子 来源:小高的SAS学习笔记 作者:小高笔记 2023-05-19 16:13 次阅读

上节我们讲了PROC SQL的基本结构,以及一些sql命令的使用,这节我们主要讲一下case...when...、order by 、group by 、update、delete语句以及如何用proc sql生成宏变量。

示例1:有条件地赋值——case...when

Proc步中的 case...when... 相当于data步中的 if...then... 根据某种条件输出最终结果。

图片

结果如下:

图片

示例2:对数据进行排序——order by

(1)默认按升序排列

图片

结果如下:

图片

(2)按降序排列

图片

结果如下:

图片

示例3:检索满足条件的行——where

**当我们想要选择表中的某些观测时,可以使用where**来选择符合特殊条件的观测。

图片

结果如下:

图片

示例4:对数据进行分组——group by

GROUP BY子句使SELECT语句的结果按子句中列出的一个或多个变量的每次不同出现进行汇总或汇总。只有在SELECTHAVING子句中包含一个或多个汇总函数(SUM、AVG、MIN、MAX)时,GROUP BY子句才会添加到SELECT语句中。

(1)用group by进行分组

图片

结果如下:

图片

(2)Having指定条件

说到指定条件,我们最新想到的往往是where子句,但是where子句只能指定行的条件,而不能指定组的条件,因此便有了Having子句,它用来指定组的条件,我们来看个示例:

我们想要了解平均体重大于100的是男性还是女性

图片

结果如下:

图片

示例5:子查询

查询语句中包含查询语句,执行时先执行子查询,后执行外部查询,根据包含子查询的子句,子查询可以返回一个值或多个值。

图片

结果如下:

图片

示例6:更新SAS表——Update

我们可以使用**SQL Update**语句更新SAS表。下面我们首先创建一个名为class的新表,然后使用SQL Update语句去更新它。

图片

结果如下:

图片

示例7:删除操作——Delete

**SQL**中的删除操作涉及使用**SQL DELETE**语句从表中删除某些值.我们可以继续使用示例中的数据,并从表中删除age大于等于13的观测。

图片

结果如下:

图片

示例8:创建宏变量——INTO

给宏变量赋值,**Data**步和**Proc**步都能实现,不过从操作灵活性上讲,**Proc**步要更胜一筹。**Proc**步生成宏变量就需要用到**INTO**子句,下面来具体介绍一下**INTO**子句如何使用。

(1)指定一个宏变量

图片

结果如下:

图片

(2)指定多个宏变量

图片

结果如下:

图片

(3)指定一个宏变量来保存一列的所有值

图片

结果如下:

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL
    SQL
    +关注

    关注

    1

    文章

    762

    浏览量

    44089
  • SAS
    SAS
    +关注

    关注

    2

    文章

    523

    浏览量

    32840
  • avg
    avg
    +关注

    关注

    0

    文章

    11

    浏览量

    4105
收藏 人收藏

    评论

    相关推荐

    【C语言应用】如何用C代码生成二维码?

    【C语言应用】如何用C代码生成二维码?
    的头像 发表于 08-24 19:01 2129次阅读
    【C语言应用】如<b class='flag-5'>何用</b>C代码<b class='flag-5'>生成</b>二维码?

    SQL语句生成

    SQL语句生成SQL数据库语句生成及分析器(支持表结构、索引、所有记录到SQL脚本)可用于数据数的备份和恢复!功能不用多说,试试就知道了
    发表于 06-12 16:15

    请教如何用SQL语句来压缩ACCESS数据库

    通过对ACCESS数据库的“修复与压缩”会使程序的运行更加稳定和提高运行速度。——请教如何用SQL语句来压缩ACCESS数据库,只用SQL语句哟!谢谢!
    发表于 11-29 21:54

    枚举变量的应用

    转自EEW。想必会C的网友对枚举和的定义与使用并不陌生,对于枚举和的区别大家应该都很熟悉。枚举类型用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。
    发表于 02-26 08:39

    为什么要动态sql语句?

    为什么要动态sql语句?因为动态sql语句能够提供一些比较友好的机制1、可以使得一些在编译过程中无法获得完整的sql语句,在程序执行阶段动态的获得。2、支持动态组装 sql语句、动态参
    发表于 12-20 06:00

    何用altium_designer_09_把已画好的原理图_自动生成pcb

    何用altium_designer_09_把已画好的原题图_自动生成pcb
    发表于 11-20 11:31 80次下载

    紫金桥软件SQL语句变量拼接的使用方法

    许多用户在使用紫金桥软件构建控制系统的同时也会与关系型数据库进行数据交互,在使用关系库的过程中必然会用到大量的SQL脚本,而SQL脚本中的where语句常常需要由变量组成,那么如何在脚本中拼接
    发表于 10-12 14:24 3次下载
    紫金桥软件<b class='flag-5'>SQL</b>语句<b class='flag-5'>变量</b>拼接的使用方法

    详解如何用AD生成Gerber文件

    详解如何用AD生成Gerber文件
    发表于 11-23 11:07 0次下载

    基于自然语言生成多表SQL语句模板填充的方法

    自然语言生成SαL查询不仅是构建智能数据库查询系统的一个重要鉏成部分,亦是新型供电轨道交通系统混合时态大数据个性化运维的难点之一。目前利用深度学习模型的方法专注于数据库中单表SQL查询生成,无法
    发表于 04-09 16:32 40次下载
    基于自然语言<b class='flag-5'>生成</b>多表<b class='flag-5'>SQL</b>语句模板填充的方法

    【C语言应用】如何用C代码生成一维码?

    【C语言应用】如何用C代码生成一维码?
    的头像 发表于 08-25 12:42 2406次阅读
    【C语言应用】如<b class='flag-5'>何用</b>C代码<b class='flag-5'>生成</b>一维码?

    如何使用SQL数据生成生成测试数据

    在本文中,我们将研究用虚拟数据填充员工数据库的过程,我们预先设计了它的模式。用虚拟数据填充SQL数据库对于运行测试很有用。最简单的方法是使用可视数据生成工具用随机数据填充SQL表。
    的头像 发表于 10-09 17:40 6318次阅读

    PROC SQL介绍

    SQL(Structured Query Language)——结构化查询语言,是用于检索和更新数据的一种标准化语言,SQL在SAS中通过PROC SQL来实现。
    的头像 发表于 05-19 16:10 2640次阅读
    <b class='flag-5'>PROC</b> <b class='flag-5'>SQL</b>介绍

    如何通过proc接口发起系统请求

    ,就会生成 /proc/sysrq-trigger 节点用于调试。 例如: 产生空指针panic事件,认为导致系统崩溃 : echo c > /proc/sysrq-trigger 导出当前CPU寄存器
    的头像 发表于 09-26 16:45 525次阅读

    oracle sql 定义变量并赋值

    在Oracle SQL中,变量是用来存储数据值的标识符。通过定义和使用变量,我们可以在SQL语句中使用它们来存储和处理数据,从而实现更灵活和动态的查询和操作。 在Oracle
    的头像 发表于 12-06 10:46 2729次阅读

    何用Rust过程魔法简化SQL函数呢?

    这是 RisingWave 中一个 SQL 函数的实现。只需短短几行代码,通过在 Rust 函数上加一行过程,我们就把它包装成了一个 SQL 函数。
    的头像 发表于 01-23 09:43 911次阅读
    如<b class='flag-5'>何用</b>Rust过程<b class='flag-5'>宏</b>魔法简化<b class='flag-5'>SQL</b>函数呢?