课程表

SAS 基础

SAS 数据集操作

SAS 数据展示

SAS 基本统计程序

工具箱
速查手册

SAS SQL

当前位置:免费教程 » 大数据/云 » SAS

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

语法

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

  1. PROC SQL;
  2. SELECT Columns
  3. FROM TABLE
  4. WHERE Columns
  5. GROUP BY Columns
  6. ;
  7. QUIT;

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

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

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

SQL创建操作

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

  1. DATA TEMP;
  2. INPUT ID $ NAME $ SALARY DEPARTMENT $;
  3. DATALINES;
  4. 1 Rick 623.3 IT
  5. 2 Dan 515.2 Operations
  6. 3 Michelle 611 IT
  7. 4 Ryan 729 HR
  8. 5 Gary 843.25 Finance
  9. 6 Nina 578 IT
  10. 7 Simon 632.8 Operations
  11. 8 Guru 722.5 Finance
  12. ;
  13. RUN;
  14.  
  15. PROC SQL;
  16. CREATE TABLE EMPLOYEES AS
  17. SELECT * FROM TEMP;
  18. QUIT;
  19.  
  20. PROC PRINT data = EMPLOYEES;
  21. RUN;

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

SQL读操作

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

  1. PROC SQL;
  2. SELECT make,model,type,invoice,horsepower
  3. FROM
  4. SASHELP.CARS
  5. ;
  6. QUIT;

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

SQL SELECT with WHERE Clause 条件查询语句

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

  1. PROC SQL;
  2. SELECT make,model,type,invoice,horsepower
  3. FROM
  4. SASHELP.CARS
  5. Where make = 'Audi'
  6. and Type = 'Sports'
  7. ;
  8. QUIT;

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

SQL UPDATE操作

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

  1. DATA TEMP;
  2. INPUT ID $ NAME $ SALARY DEPARTMENT $;
  3. DATALINES;
  4. 1 Rick 623.3 IT
  5. 2 Dan 515.2 Operations
  6. 3 Michelle 611 IT
  7. 4 Ryan 729 HR
  8. 5 Gary 843.25 Finance
  9. 6 Nina 578 IT
  10. 7 Simon 632.8 Operations
  11. 8 Guru 722.5 Finance
  12. ;
  13. RUN;
  14.  
  15. PROC SQL;
  16. CREATE TABLE EMPLOYEES2 AS
  17. SELECT ID as EMPID,
  18. Name as EMPNAME ,
  19. SALARY as SALARY,
  20. DEPARTMENT as DEPT,
  21. SALARY*0.23 as COMMISION
  22. FROM TEMP;
  23. QUIT;
  24.  
  25. PROC SQL;
  26. UPDATE EMPLOYEES2
  27. SET SALARY=SALARY*1.25;
  28. QUIT;
  29. PROC PRINT data = EMPLOYEES2;
  30. RUN;

在SQL中删除操作

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

  1. PROC SQL;
  2. DELETE FROM EMPLOYEES2
  3. WHERE SALARY > 900;
  4. QUIT;
  5. PROC PRINT data = EMPLOYEES2;
  6. RUN;
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号