×

SAS 教程

SAS 概述SAS 程序结构SAS 基本语法SAS 数据集SAS 变量SAS 字符串SAS 数组SAS 数字格式SAS 运算符SAS 循环SAS 决策SAS 功能SAS Input 输入方法SAS 宏SAS Date Times 日期时间

SAS 数据集操作

SAS 写入数据集SAS 连接数据集SAS 合并数据集SAS 子集数据集SAS 数据集排序SAS 格式数据集SAS SQLSAS ODSSAS 模拟SAS 读取原始数据

SAS 数据展示

SAS 直方图SAS 条形图SAS 饼图SAS 散点图SAS 箱线图

SAS 基本统计程序

SAS 线性回归SAS Bland Altman分析SAS 卡方SAS Fisher精确测试SAS 算术平均值SAS 重复测量分析SAS 标准偏差SAS 单因素方差分析SAS 频率分布SAS 假设检验SAS 交叉表格SAS T检验SAS 相关性分析

SAS 相关资源

SAS 讨论SAS 有用的资源SAS 相关问题与解答

SAS SQL


SAS通过在SAS程序中使用SQL查询,为大多数流行的关系数据库提供广泛的支持。 支持大多数ANSI SQL语法。 过程PROC SQL用于处理SQL语句。 此过程不仅可以返回SQL查询的结果,还可以创建SAS表和变量。 所有这些情况的示例如下所述。

语法

在SAS中使用PROC SQL的基本语法是:

PROC SQL;
SELECT Columns
FROM TABLE
WHERE Columns
GROUP BY Columns
;
QUIT;

以下是使用的参数的描述:

  • SQL查询写在PROC SQL语句之后,后跟QUIT语句。

下面我们将看到这个SAS过程如何用于SQL中的CRUD(创建,读取,更新和删除)操作。

SQL创建操作

使用SQL,我们可以创建新的数据集形式原始数据。 在下面的示例中,首先声明一个名为TEMP的数据集,其中包含原始数据。 然后我们写一个SQL查询,从这个数据集的变量创建一个表。

DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;

PROC SQL;
CREATE TABLE EMPLOYEES AS
SELECT * FROM TEMP;
QUIT;

PROC PRINT data = EMPLOYEES;
RUN;

当执行上面的代码中,我们得到以下结果:

SQL读操作

SQL中的读取操作涉及编写SQL SELECT查询以从表中读取数据。 In以下程序查询库SASHELP中可用的名为CARS的SAS数据集。 查询获取数据集的某些列。

PROC SQL;
SELECT make,model,type,invoice,horsepower
 FROM 
SASHELP.CARS
;
QUIT;

当执行上面的代码中,我们得到以下结果:

SQL SELECT with WHERE Clause 条件查询语句

以下程序使用where子句查询CARS数据集。 在结果中,我们只得到了作为“Audi”和类型为“Sports”的观察。

PROC SQL;
SELECT make,model,type,invoice,horsepower
 FROM 
SASHELP.CARS
Where make = 'Audi'
and Type = 'Sports'
;
QUIT;

当执行上面的代码中,我们得到以下结果:

SQL UPDATE操作

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

DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;

PROC SQL;
CREATE TABLE EMPLOYEES2 AS
SELECT ID as EMPID,
Name as EMPNAME ,
SALARY as SALARY,
DEPARTMENT as DEPT,
SALARY*0.23 as COMMISION
FROM TEMP;
QUIT;

PROC SQL;
UPDATE EMPLOYEES2
      SET SALARY=SALARY*1.25;
 QUIT;
     PROC PRINT data = EMPLOYEES2;
RUN;

在SQL中删除操作

SQL中的删除操作涉及使用SQL DELETE语句从表中删除某些值。 我们继续使用上面示例中的数据,并从表中删除雇员的工资大于900的行。

PROC SQL;
DELETE FROM EMPLOYEES2
      WHERE SALARY > 900;
QUIT;
      PROC PRINT data = EMPLOYEES2;
RUN;


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)