You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Teradata中对应Oracle DUAL表的等价实现及SQL写法是什么?

Teradata中对应Oracle DUAL表的等价方案及单行查询写法

刚从Oracle切换到Teradata的小伙伴肯定会有这个疑问——毕竟DUAL表在Oracle里太常用了,用来生成单行测试数据或者调用函数都离不开它。其实Teradata里也有对应的解决方案,而且有两种常用方式:

方式一:直接省略FROM子句(最简便)

Teradata支持无FROM子句的单行查询,这是最直接也最省事的写法,完全不需要类似DUAL的表对象。比如你要生成SELECT 1 AS x FROM dual的等价结果,直接写:

SELECT 1 AS x;

像调用系统函数、获取当前时间这类场景,也可以直接这么写:

SELECT CURRENT_DATE, CURRENT_TIMESTAMP;

方式二:使用SYSDUMMY1系统表(贴近Oracle习惯)

如果你更习惯Oracle的写法,想要一个类似DUAL的表对象,Teradata提供了SYSDUMMY1系统表。这个表是Teradata专门设计的,只有一行一列(列名为DUMMY,固定值为'Y'),功能和Oracle的DUAL完全一致。对应的SQL写法就是:

SELECT 1 AS x FROM SYSDUMMY1;

同样,调用函数的场景也可以用它:

SELECT CURRENT_DATE FROM SYSDUMMY1;

小提示

两种写法效果完全一样,日常使用中直接省略FROM子句更简洁;如果是从Oracle迁移代码,替换成FROM SYSDUMMY1可以最小化修改成本。

内容的提问来源于stack exchange,提问作者Lukas Eder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:40:19