如何使用值和空列在postgresql中创建临时表
问题描述:
我对postgresql很新。我想创建一个包含一些值和空列的临时表。这是我的查询,但它没有执行,但在,
(逗号)处出现错误。如何使用值和空列在postgresql中创建临时表
CREATE TEMP TABLE temp1
AS (
SELECT distinct region_name, country_name
from opens
where track_id=42, count int)
我做错了什么?
如何使用select查询和其他列作为空创建一个具有值的列的临时表?
答
只需选择一个NULL值:
CREATE TEMP TABLE temp1
AS
SELECT distinct region_name, country_name, null::integer as "count"
from opens
where track_id=42;
演员到一个整数(null::integer
)是必要的,否则的Postgres不知道使用什么数据类型为额外的列。如果你想提供一个不同的值,你当然可以使用例如42 as "count"
而不是
请注意,count
是一个保留关键字,因此如果要将其用作标识符,则必须使用双引号。然而,找到一个不同的名字会更好。
在括号之间也没有必要将SELECT
语句用于CREATE TABLE AS SELECT
。
答
您的错误来自语句附近WHERE语句。
这应该工作:
CREATE TEMP TABLE temp1 AS
(SELECT distinct region_name,
country_name,
0 as count
FROM opens
WHERE track_id=42)
答
试试这个。
CREATE TEMP TABLE temp1 AS
(SELECT distinct region_name,
country_name,
cast('0' as integer) as count
FROM opens
WHERE track_id=42);
'cast('0'as integer)'可以简化为'0' –
是的。有可能。 –