我想创建一个临时表并在 redshift 中调用这个临时表?我已经尝试过这个,但收到一条错误消息。
select top 10 * into #a from public.item_activity where item_act_timestamp < DATEADD(day,-1,getdate());
select * from #a
“错误:42P01:关系“#a”不存在”
请使用以下命令创建表格:
CREATE TEMP TABLE temp_table_name ....
完成后,使用如下选择查询
select * from temp_table_name
临时表仅在您创建该表的会话期间存在。
如果您不使用 Aginity 工具,请在工具中查找类似的设置。
这个问题也让我烦恼了一段时间,所以尽管这个问题是不久前提出的,但还是发布了解决方案。解决方案在于您使用的工具,在我的例子中是 Aginity,有 2 种方法可以解决:
希望我能够帮助别人!
你可以使用
Create temporary table tbl_name as (Select * from abc)
--OR
create temporary table tmp_date_var AS
( SELECT '2017-04-01'::Date AS stdt,'2018-01-31'::Date AS enddt);
使用
create table as
代替 select into
。
创建临时表为:
create table #temp_table as
<subquery>
查询临时表为:
select * from #temp_table
更多信息,请参阅:如何在 redshift 中创建表。
您基本上是在尝试使用“into”关键字将选择查询的结果存储在临时表中。 这很容易做到。 您只需在表名前使用 double hash (##) 即可。 所以你的查询现在看起来像:
select top 10 * into ##a from public.item_activity where item_act_timestamp < DATEADD(day,-1,getdate());
select * from ##a;