我加入了一家新公司,他们正在使用 DBVisualizer。在过去 5 年里,我使用 SQL Server,现在我很欣赏 SQL Server 智能执行查询的能力。
我面临的问题之一是一次执行多个临时表。例如,尝试执行以下命令会引发错误,提示 #abc 不可用。这在 SQL Server 中不是问题,因为它过去可以智能地执行它。
drop table if exists #abc;
create table #abc as
select a.ID, a.EMP
from sandbox.table1 as a
drop table if exists #cde;
create table #cde as
select a2.ID, sum(a1.sum) as Rev
from sandbox.table2 as a1
join #abc as a2 on a1.ID = a2.ID
group by a2.ID
如果您希望在运行时使用某些查询作为表,请尝试WITH,它将帮助您在运行时为特定查询创建临时视图。然后您可以将此查询输出用作表格并使用它。
示例-
with userTBL as (
select *
from user
where activated=true
),
usertiming as (
select date,userID
from timingtabls
where date=currentdate
)
select * from userTBL left join timing t on t.userID=id;
我遇到了同样的问题,并找到了非常简单的解决方案。单击每个 sql 语句第一个单词(drop、select 等)中的任意位置,然后按 CTRL + Enter。对每个查询执行此操作的顺序与整个 SQL 查询中的顺序相同。所有查询都将毫无错误地运行。