在 Oracle 中,我们可以使用
什么是Teradata的等效产品?
SELECT
语句编写以下内容以生成单行数据。SELECT 1 AS x FROM dual
什么是Teradata的等效产品?
SELECT
语句编写以下内容以生成单行数据。SELECT 1 AS x FROM dual
在大多数情况下,Teradata数据库中并不真正需要表格。以下是有效的SQL(与H2、PostgreSQL、Redshift、SQL Server、SQLite、Sybase ASE、Sybase SQL Anywhere、Vertica一样)
SELECT 1
SELECT 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 的 dual 的视图:
CREATE VIEW "DUAL" AS (SELECT 1 AS "DUMMY");
请注意,DUAL
是 Teradata 中的关键字,因此需要对视图进行引用。
replace view "dual" as select 'X' as DUMMY
更简单。 - dnoeth