首页 > 解决方案 > 使用 INSERT INTO 建表的 SQL 错误

问题描述

我正在尝试使用 INSERT INTO 使用在线教程在 SAS Enterprise Guide 中整理一个表格,但是当我执行与教程相同的操作时会不断出错。可能出了什么问题?

我的代码:

/* Create the table */ 
   CREATE TABLE Summary_1920 (
      Variable VARCHAR(255), 
      Count INT, 
      Percentage FLOAT ); 
/* Create and insert the variable names */
   INSERT INTO Summary_1920 
      (Variable, Count, Percentage)
   VALUES 
      ("Variable1", 100, 90.8),
      ("Variable2", 8, 7.0);

QUIT; 

错误:

28               ("IntName", 100, 90.8),
                                       _
                                       22
                                       200
ERROR 22-322: Syntax error, expecting one of the following: ;, VALUES.  

ERROR 200-322: The symbol is not recognized and will be ignored.

这是我第一次使用 SAS EG/SQL,所以它可能非常明显,但我多年来一直在尝试解决这个问题。感谢您的任何见解。

标签: sqlsasenterprise-guide

解决方案


有趣的。看起来proc sql不允许您使用单个VALUES子句插入多行。所以只需使用两个语句:

INSERT INTO Summary_1920 (Variable, Count, Percentage)
    VALUES ("Variable1", 100, 90.8);

INSERT INTO Summary_1920 (Variable, Count, Percentage)
    VALUES ("Variable2", 8, 7.0);

我认为它还支持VALUES一个语句中的多个子句:

INSERT INTO Summary_1920 (Variable, Count, Percentage)
    VALUES ("Variable1", 100, 90.8)
    VALUES ("Variable2", 8, 7.0);

这不是 SQL 标准语法,我不熟悉任何其他支持它的数据库。您的逗号版本是标准的——或者至少大多数数据库都支持。


推荐阅读