SAS 中的过程 SQL

问题描述 投票:0回答:1

您可以在 SAS 中的 Proc SQL 中编写代码吗,其中我们必须向 Student 表添加一个名为 StudentName 的新列,该列可以为空

您能否提供一个示例场景

比如在 Proc SQL 中执行此操作的步骤是什么以及如何编写代码。

sas proc-sql
1个回答
0
投票

我已更新您的问题,以包含您在评论中提供的代码以及运行该代码时收到的错误消息。

以后在 StackOverflow 上写问题时,如果你在问题中包含完整的代码和任何错误消息,会更有帮助,这样人们可以帮助指出具体问题并帮助你更好地理解。

我必须承认,对于入门级用户来说,SAS 文档并不是最容易理解的,并且

ALTER TABLE
的特定页面不包含任何示例。不过,我确实在这里找到了一些: https://documentation.sas.com/doc/en/pgmsascdc/9.4_3.5/sqlproc/n1spf244gkq54cn13bbiy307hknr.htm

让我们看一下其中一个示例:

proc sql;
   alter table sql.newcountries
      add density num label='Population Density' format=6.2;
quit;

这里的内容比您需要的要多一些,但让我们逐一介绍一下每个组件:

  • add - 告诉 PROC SQL 您要添加列
  • 密度 - 您的列的名称
  • num - 列的数据类型,在 SAS 中是(char 或 num)
  • label= - 您的列的标签
  • format= - 您的列的格式

要更新代码,您需要执行以下操作:

  • 切换变量名称和类型
  • 更新
    student name
    ,使其没有空格,您可以使用下划线来完成此操作
    student_name
proc sql; 
  alter table students add student_name char;
quit;

生成的日志:

 70           alter table students add student_name char;
 NOTE: Table WORK.STUDENTS has been modified, with 2 columns.

您现在可能遇到的问题是 SAS 初始化所有长度为 8 的列,因此要指定更长的长度,请使用

length=
:

proc sql;
  alter table students add long_student_name char length=200;
quit;

如果您已阅读本文并且这对您有所帮助,请记住记住我关于在您的问题中包含更多信息的提示 - 这样您更有可能收到高质量的答案。

© www.soinside.com 2019 - 2024. All rights reserved.