用于where子句的空oracle全局临时表

时间:2017-05-30 06:49:31

标签: sql oracle

我有一些填充了数据的GTT,后来用于WHERE子句(WHERE x in (SELECT * FROM gtt))。但是,有时候我没有临时桌子的数据或者不想通过它进行过滤。

如果我理解正确的话,GTT会在插入内容时进行实例化,并且会在那里进行。有没有办法实例化一个空表,所以当我使用WHERE IN SELECT时它不会抛出错误(它现在会这样做)? 或者我是否必须使用IF创建SELECT语句,以便有选择地仅包含应该使用的gtts的WHERE?

目前结构如下:

IF(data)
INSERT INTO GTT1 SELECT ...
END IF;

(对于几个gt)

SELECT x.data, x.more, a.a, a.b 
FROM table1 x, table2 a 
WHERE x.key in (SELECT * From gtt1) AND x.a = a.a;

1 个答案:

答案 0 :(得分:0)

您可以更改INSERT INTO GTT的WHERE子句,以便找不到任何行。