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;
转载本站内容时,请务必注明来自W3xue,违者必究。