通常,不需要这样的表
在大多数情况下,Teradata数据库中实际上不需要任何表。以下是有效的SQL(就像在H2,PostgreSQL,Redshift,SQL
Server,SQLite,Sybase ASE,Sybase SQL Anywhere,Vertica中一样)
SELECt 1SELECT 1 WHERe 1 = 1
例外情况
但是,当需要进行设置操作时,会有一个例外。例如,这在Teradata中无效:
SELECT 1 UNIOn ALL SELECT 2
产生此错误:
一个UNIOn,INTERSECT或MINUS的SELECT必须引用一个表。
但是由于该
FROM子句通常是可选的,因此模拟
DUAL表非常简单,如下所示:
SELECt 1 FROM (SELECt 1 AS "DUMMY") AS "DUAL"UNIOn ALL SELECT 2 FROM (SELECT 1 AS "DUMMY") AS "DUAL"
兼容性
如果需要与Oracle等实现兼容性,则可以轻松创建行为类似于Oracle双重视图的视图:
CREATE VIEW "DUAL" AS (SELECT 1 AS "DUMMY");
注意,这
DUAL是Teradata中的关键字,因此需要引用该视图。



