在CREATE TABLE AS语句中指定数据类型

时间:2012-10-06 11:34:37

标签: sql postgresql syntax type-conversion

我正在使用另一个表dummy2中的值创建表dummy。这是我的语法:

CREATE TABLE dummy2 AS SELECT
t1.zid AS orig_id,
t2.zid AS dest_id,
ABS(RANDOM()*(45-2)-45) AS dist
FROM dummy t1, dummy t2;

zid中的属性dummy存储为DOUBLE PRECISION。但是,在新表中,我想将其数据类型更改为INTEGER。我怎样才能做到这一点?我最初的想法是这样的(非常类似于我们在使用模式创建表时声明数据类型的方式:

CREATE TABLE dummy2 AS SELECT
t1.zid AS orig_id INTEGER,
t2.zid AS dest_id INTEGER,
ABS(RANDOM()*(45-2)-45) AS dist
FROM dummy t1, dummy t2;

但它无法执行。任何人都可以帮我解决这个问题吗?感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

CREATE TABLE dummy2 AS SELECT
cast(t1.zid as integer) AS orig_id,
cast(t2.zid as integer) AS dest_id,
ABS(RANDOM()*(45-2)-45) AS dist
FROM dummy t1, dummy t2;