从SAS表创建PostgreSQL表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从SAS表创建PostgreSQL表相关的知识,希望对你有一定的参考价值。
我正在从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 |
+----------+--------------+------+-------+-----+-----+
客户端显示错误:语法错误在“结束”或接近“结束”。我认为错误可能是由“开始”列引起的。不知道为什么以及如何解决它。我的代码只是一个sql,tableA用于postgresql,tableB来自SAS:
create table schema.tableA from select * from mywork.tableB;
任何建议表示赞赏!
答案
SAS允许变量名称的关键字更灵活。在postgresql代码中,您可能需要在变量或数据集名称周围添加双引号,以防止它认为您正在键入关键字。所以使用
select "end" from ...
如果你这样做,那么请注意名称的情况。没有引号Postgres将默认以全小写形式创建/搜索名称。但是,一旦添加引号,引号中的值必须与变量名称完全匹配。因此,如果您创建名为Name
的变量,它实际上将创建一个名为name
的变量,您可以引用为NAME
或NaMe
。
但是如果你使用引号创建一个混合大小写的变量,比如"Name"
,那么大写的N
将在变量名中,你必须使用"Name"
来引用它。没有引号的Name
将无法工作,因为它将查找带小写的变量name
。
以上是关于从SAS表创建PostgreSQL表的主要内容,如果未能解决你的问题,请参考以下文章