我正在从sas表创建一个PostgreSQL表,sas表显示如下。列woe的类型是数字,其他列是char的类型。
+----------+--------------+------+-------+-----+-----+
| variable | new_variable | type | start | end | woe |
+----------+--------------+------+-------+-----+-----+
| A | mi_A | char | 1 | | 1.3 |
| A | mi_A | char | 0 | | 0.6 |
| B | mi_B | char | 1 | | 5.4 |
| B | mi_B | char | 0 | | 0.1 |
| gnd_cd | gnd_cd | char | 3 | | 1.3 |
| gnd_cd | gnd_cd | char | @0 | | 0.6 |
| gnd_cd | gnd_cd | char | 2 | | 5.4 |
| gnd_cd | gnd_cd | char | N | | 0.1 |
| gnd_cd | gnd_cd | char | 1 | | 1.3 |
| gnd_cd | gnd_cd | char | 99 | | 0.6 |
| mar_sign | mar_sign | char | 0 | | 5.4 |
| mar_sign | mar_sign | char | Y | | 0.1 |
| mar_sign | mar_sign | char | N | | 6 |
+----------+--------------+------+-------+-----+-----+
客户端显示错误:语法错误在或接近"结束"。我认为错误可能是由" start" column.still不知道为什么以及如何解决它。 我的代码只是一个sql,tableA用于postgresql,tableB来自SAS:
create table schema.tableA from select * from mywork.tableB;
任何建议都表示赞赏!
答案 0 :(得分:0)
SAS在允许变量名称的关键字方面更灵活。在postgresql代码中,您可能需要在变量或数据集名称周围添加双引号,以防止它认为您正在键入关键字。所以使用
select "end" from ...
如果你这样做,那么请注意名字的情况。没有引号Postgres将默认以全小写形式创建/搜索名称。但是,一旦添加引号,引号中的值必须与变量名称完全匹配。因此,如果您创建名为Name
的变量,它实际上会创建一个名为name
的变量,您可以引用为NAME
或NaMe
。
但是如果你使用引号创建一个混合大小写的变量,比如"Name"
,那么大写的N
将在变量名中,你必须使用"Name"
来引用它。没有引号的Name
将无效,因为它会查找带有小写name
的变量。