首页 > 数据库 >PROC SQL 006

PROC SQL 006

时间:2023-08-22 22:14:35浏览次数:47  
标签:变量 proc SQL 006 子句 排序 PROC select USUBJID

在前面的几个章节中,我们介绍了查询语句的基本用法,这一节,我们介绍查询语句语句中的排序和分组。

排序

如果我们希望将查询结果展现在窗口中,或者输出至外部文件以供他人查看,那么有可能会涉及到对查询结果的排序。PROC SQL 使用 ORDER BY 子句进行排序。PROC SQL 的排序非常灵活,支持单个变量或多个变量的组合排序,支持根据表达式的结果排序,甚至支持根据‘匿名变量’的结果进行排序。

例1:

/*单变量排序*/
proc sql;
    select * from sashelp.class order by name;
quit;

/*多变量组合排序*/
proc sql;
    select * from sashelp.class order by age, name;
quit;

基于多变量的排序时,PROC SQL 根据排序变量出现的先后顺序,先排第一个变量,若某些观测的第一个变量的值相同,则依据第二个变量的值进行排序,以此类推。

可以在变量后面指定排序方向,ASC 表示正序,DESC 表示倒序,如果没有指定排序方向,则默认为正序排列。

例2:

proc sql;
    select
        USUBJID,
        AESEQ,
        AETERM,
        AESTDTC
    from AE order by input(AESTDTC, yymmdd10.), USUBJID, AESEQ;
quit;

这个例子对不良事件按照发生日期从早到晚进行排序,由于原始的发生日期是字符型的,因此使用了一个表达式先将字符型的日期转换为数值型的日期,然后基于该转换结果进行排序。

例3:

proc sql;
    select
        USUBJID,
        AESEQ,
        AETERM,
        AESTDTC,
        input(AESTDTC, yymmdd10.) format = yymmdd10.
    from AE order by 4, USUBJID, AESEQ;
quit;

这个例子与前一个例子的作用相同,不同之处在于,这里在对字符型日期进行转换之后,并没有给转换后的数值型日期指定一个变量名,为了使得输出结果可以按照不良事件的发生日期进行排序,这里的 ORDER BY 语句指定了查询结果的第 4 列变量进行排序,也就是数值型日期所在的变量。

标签:变量,proc,SQL,006,子句,排序,PROC,select,USUBJID
From: https://www.cnblogs.com/snoopy1866/p/17649817.html

相关文章

  • Mysql 分页查询总结
    背景最近在做项目的时候,有一个场景需要进行分页查询某个分类下的商品信息,发现对这块不熟悉,故总结一下01表结构CREATETABLE`tb_goods`(`id`bigint(20)NOTNULLAUTO_INCREMENTCOMMENT'主键',`item_id`int(11)NOTNULLCOMMENT'商品id',`category_id`int(......
  • SQL练习题
    1、查询每个部门最高薪水的人员名称?--第一步,找出每个部门的最高工资selectdeptno,max(sal)fromempgroupbydeptno;--第二步,将上面的结果当做一张临时表T,T和emp表连接,条件:T.deptno=e.deptnoandt.max=e.salselecte.ename,T.*fromempejoin(selectdeptno,ma......
  • SQLalchemy补充
    目录七更多查询方式八连表查询九原生sql(django-orm如何执行原生sql)9.1sqlalchemy执行原生sql9.2django执行原生sql十flask-sqlalchemy使用10.1sqlalchemy自己操作src/init.pysrc/models.pysrc/session_sql.pysrc/settings.pysrc/views.pymanage.py10.2使用flask-sqlalch......
  • SQLAlchemy
    目录一SQLAlchemy介绍和快速使用1.1sqlalchemy的原生操作二sqlalchemy通过orm创建表删除表sqlalchemy.pymodels.py示例三scoped_session线程安全3.1scoped_session线程对象3.2类装饰器四基本增删查改4.1基本增删查改五表关系:一对多(一对一)5.1表模型5.2新增和基于对象......
  • sql语句中exists用法详解
    文章目录一、语法说明exists:notexists:二、常用示例说明1.查询a表在b表中存在数据2.查询a表在b表中不存在数据3.查询时间最新记录4.exists替代distinct剔除重复数据总结一、语法说明exists:括号内子查询sql语句返回结果不为空(即:sql返回的结果为真),子查询的结果不为空这条件成立,执行......
  • mysql-给用户添加表权限
    指定用户的表权限grantselect,insert,update,delete,indexonmqdt_sjzl_dev.t_bz_jdsf_question_reformtoshujugu@'%';给mysql用户分配制度库的查询权限GRANTselectONmqdt_sjzl_longtu_dev.*TOshujugu@'%';grantselect,insert,update,delete,indexonmqdt_sjzl_d......
  • mysql单库并发优化
    是否在使用Mysql时有以下疑问:1、限制连接数时CPU占用量不大吞吐量也不高!2、增大连接数后吞吐量提升不大却容易导致Mysql服务器卡死!3、横向增加Mysql服务器时感觉并发能力提升也有限!4、...以下仅以mysql的innodb引擎说明,独享数据库服务器为例。吞吐量瓶颈mysql的吞吐量主要受:磁盘读......
  • 在Docker上安装部署SQL Server2019 Express
    在Docker上安装部署SQLServer2019Express_docker安装sqlserver2019_梦想天空分外蓝的博客-CSDN博客  梦想天空分外蓝_-CSDN博客......
  • SQL注入基础学习4
    14、第14关测试注入点,查找闭合方式,闭合方式为"查找数据库admin"and1=updatexml(1,concat(0x7e,(selectdatabase())),3)#/*结果如下*/XPATHsyntaxerror:'~security'查找数据库中的表admin"and1=updatexml(1,concat(0x7e,(selectgroup_concat(table_name)f......
  • python · SQL | MySQL 配置与 python 连接数据库
    来存档一下搞sql的过程,方便以后查阅。安装与配置mysqlserver:https://blog.csdn.net/zhende_lan/article/details/129318514在同一个网页下载mysqlworkbench(数据库可视化);打开workbench,新建一些表,用来测试:https://zhuanlan.zhihu.com/p/260139380python连接sql的代......