Sql 创建表时的Postgres格式

Sql 创建表时的Postgres格式,sql,postgresql,sas,Sql,Postgresql,Sas,我的工作是考博士后。我通常使用SAS和Oracle和Teradata语法编写SQL。我们的测试数据库有一个非常松散的表,其中每个列都是以255字符的形式创建的。我有一件非常简单的事情,我正试图去做,但它不起作用。我想创建一个新表,并将其格式从255改为10。我还想删除所有尾随空格。此外,“为空”不起作用。即使某个值不可见 PROC SQL; CONNECT TO POSTGRES(&connectstuff); EXECUTE(CREATE TABLE common.UNQ_NUM_LI

我的工作是考博士后。我通常使用SAS和Oracle和Teradata语法编写SQL。我们的测试数据库有一个非常松散的表,其中每个列都是以255字符的形式创建的。我有一件非常简单的事情,我正试图去做,但它不起作用。我想创建一个新表,并将其格式从255改为10。我还想删除所有尾随空格。此外,“为空”不起作用。即使某个值不可见

PROC SQL;
CONNECT TO POSTGRES(&connectstuff);
EXECUTE(CREATE TABLE common.UNQ_NUM_LIST AS
        SELECT DISTINCT UNIQUE_NUM, 
               BTRIM(PAT_ACCT) AS PAT_ACCT 
        FROM ACCT_DATA.ACCNTS
) by postgres;
DISCONNECT FROM POSTGRES;
QUIT;

我想将PAT_ACCT创建为字符10格式,但不确定如何创建。创建表格时,我是否可以指示新格式?我试过的一切都不管用。甚至BTRIM实际上似乎也没有去掉该值上的尾随空格。同样,空值不会被“IS null”识别。我觉得这应该很简单

要影响数据类型,请在查询中适当地强制转换结果列:

CAST (btrim(pat_acct) AS character(10)) AS pat_acct
但是,无法通过这种方式设置列
notnull

我建议您执行两条语句:一条语句按照您希望的方式创建表,另一条语句类似于

INSERT INTO ...
SELECT ... FROM ...

向我们展示样本数据、电流和期望输出<代码>我尝试过的一切都不起作用你尝试过什么。什么意思不起作用?错误/错误的结果?太棒了!成功了!非常感谢。