本文概述
- 创建操作
- SQL读取操作
- 带WHERE子句的SQL SELECT查询
- SQL UPDATE操作
- SQL删除操作
所有与SQL相关的方案如下所示。
句法:
PROC SQL;
SELECT ColumnsFROM TABLEWHERE ColumnsGROUP BY Columns;
QUIT;
其中
- PROC SQL:这是编写SQL查询的过程。
- 退出:这是用于关闭SQL查询的语句。
创建操作 我们可以使用SQL从原始数据创建一个新的数据集。让我们考虑SAS数据集DETAILS, 其中包含组织员工的个人信息。现在, 我们需要编写SQL查询, 以根据变量的原始数据创建表EMPLOYEE。
DATA details;
INPUT empid name $ salary dept $ ;
DATALINES;
1 Akash 22000 IT6 Jaya 23500 HR2 Vinita 33000 IT7 Kumar 27000 IT 4 Anita 53000 HR5 Taufik 32000 IT8 Boby 25000 IT3 Ankita 42000 IT ;
RUN;
PROC SQL;
CREATE TABLE EMPLOYEES ASSELECT * FROM details;
QUIT;
PROC PRINT data = http://www.srcmini.com/EMPLOYEES;
RUN;
在SAS Studio中执行以上代码:
文章图片
输出
文章图片
正如我们在输出中看到的, 已经为所有变量创建了表。
SQL读取操作 在SQL的读取操作中, 我们可以从表中读取数据。要读取数据, 我们需要编写一个SQL SELECT查询。在示例中, 我们将从SASHELP库中可用的表CARS中读取数据。 SELECT查询获取数据集中提到的列(或变量)的数据。
例:
PROC SQL;
SELECT make, model, type, invoice, horsepowerFROM SASHELP.CARS;
QUIT;
在SAS Studio中执行以上代码:
文章图片
输出
文章图片
从输出中可以看到, 表CARS的所有数据已显示。
带WHERE子句的SQL SELECT查询 SAS在数据子设置中使用” where” 子句, 即, 仅用于获取我们所需的值并放弃剩余的值。
下面的程序有一个带有子句where的CARS数据集。在结果中, 我们将仅获得make列值为” Audi” 的观察值和type列值为” Sports” 的观察值。
PROC SQL;
SELECT make, model, type, invoice, horsepowerFROM SASHELP.CARSWhere make = 'Audi'and Type = 'Sports';
QUIT;
在SAS Studio中执行以上代码:
文章图片
输出
文章图片
从输出中可以看到, 已显示Make = Audi和Type = Sports列的所有观测值, 其余的观测值已被省略。
SQL UPDATE操作 在SQL的更新操作中, 我们可以更新表的数据。要更新数据, 我们需要编写SQL UPDATE查询。在下面的示例中, 我们将更新数据集DETAILS的数据。
DATA DETAILS;
INPUT empid name $ salary dept $ ;
DATALINES;
1 Akash 22000 IT6 Jaya 23500 HR2 Vinita 33000 IT7 Kumar 27000 IT 4 Anita 53000 HR5 Taufik 32000 IT8 Boby 25000 IT3 Ankita 42000 IT ;
RUN;
PROC SQL;
CREATE TABLE EMPLOYEES2 ASSELECT empid as id, name as empname , salary as salary, dept as departmentFROM DETAILS;
QUIT;
PROC SQL;
UPDATE EMPLOYEES2SET SALARY = SALARY*1.25;
QUIT;
PROC PRINT data = http://www.srcmini.com/EMPLOYEES2;
RUN;
在SAS Studio中执行以上代码:
文章图片
输出
文章图片
如你在输出中看到的, 所有变量都已更新, 例如, empid为id, name为empname, dept为Department。
SQL删除操作 在SQL的Delete操作中, 我们可以从表中删除特定数据。要从表中删除数据, 我们需要编写SQL DELETE查询。在下面的示例中, 我们将从表中删除数据。
在这里, 我们从上面的示例中获取数据, 并将删除员工工资超过30, 000的表中的行。
DATA DETAILS;
INPUT empid name $ salary dept $ ;
DATALINES;
1 Akash 22000 IT6 Jaya 23500 HR2 Vinita 33000 IT7 Kumar 27000 IT 4 Anita 53000 HR5 Taufik 32000 IT8 Boby 25000 IT3 Ankita 42000 IT ;
RUN;
PROC SQL;
DELETE FROM DETAILSWHERE SALARY >
30000;
QUIT;
PROC PRINT data = http://www.srcmini.com/DETAILS;
RUN;
在SAS Studio中执行以上代码:
文章图片
输出
文章图片
【SAS-SQL详细操作图解】从输出中可以看到, 所有薪水超过30, 000的员工均被删除。
推荐阅读
- SAS数组用法详细图解
- SAS数据集的子设置详细图解
- Appium自动化测试之键盘操作pressKeyCode()方法(Android特有)
- Windows系统下使用Charles抓取Android模拟器http请求
- Android 资源目录
- Android Zygote进程
- excel导出报错(The supplied data appears to be in the Office 2007+ XML.)
- 更换安卓模拟器路径
- uni-app框架简介