gpt4 book ai didi

sql - 什么是 Teradata 相当于 Oracle 的 DUAL

转载 作者:行者123 更新时间:2023-12-04 16:05:37 36 4
gpt4 key购买 nike

在 Oracle 中,我们可以使用 SELECT 编写此代码以生成单行。陈述。

SELECT 1 AS x FROM dual

Teradata 的等价物是什么?

最佳答案

一般不需要这样的表
大多数情况下,Teradata 数据库中并不真正需要表。以下是有效的 SQL(就像在 H2、PostgreSQL、Redshift、SQL Server、SQLite、Sybase ASE、Sybase SQL Anywhere、Vertica 中一样)

SELECT 1
SELECT 1 WHERE 1 = 1
异常(exception)
然而,有一个异常(exception),当需要设置操作时。例如。这在 Teradata 中无效:
SELECT 1 UNION ALL SELECT 2
产生这个错误:

A SELECT for a UNION,INTERSECT or MINUS must reference a table.


但自从 FROM子句通常是可选的,很容易模拟 DUAL表如下:
SELECT 1 FROM (SELECT 1 AS "DUMMY") AS "DUAL"
UNION ALL
SELECT 2 FROM (SELECT 1 AS "DUMMY") AS "DUAL"
兼容性
如果需要与 Oracle 等实现兼容性,很容易创建一个行为类似于 Oracle 的双重 View :
CREATE VIEW "DUAL" AS (SELECT 1 AS "DUMMY");
请注意 DUAL是 Teradata 中的关键字,因此需要引用 View 。
其他方言
如果有人感兴趣, jOOQ user manual lists various ways of emulating DUAL (如果需要)在 30 多种 SQL 方言中。

关于sql - 什么是 Teradata 相当于 Oracle 的 DUAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49901803/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com