teradata中的变量声明

declaration of variable in teradata

在 teradata 的 sql 方言中是否有等效于声明类似于此 Sql 服务器 (TSQL) 代码的变量?

DECLARE @Somedate Date = GETUTCDATE();

SELECT TOP 10 * FROM SOMETABLE WHERE SOMEDATE = @Somedate;

是否可以在 Teradata 上仅使用以下语法? Current_Date 部分可以替换为任何标量查询。这将与 Teradata SQL Assistant / BTEQ 工具

一起使用
SELECT TOP 10 * FROM SOMETABLE WHERE SOMEDATE = Current_Date;
SELECT TOP 10 * FROM SOMETABLE WHERE SOMEDATE = (SELECT MAX(SameDate) FROM SomeOtherTable);

在 Teradata 的存储过程中将日期存储为某个变量来实现此目的的一种方法是:

DECLARE v_SQL_Text VARCHAR(32000);
DECLARE v_Somedate Date;

SELECT Current_Date INTO :v_Somedate;

SET v_SQL_Text = 'SELECT TOP 10 * FROM SOMETABLE WHERE SOMEDATE = ' || v_Somedate || ';'

CALL DBC.SysExecSQL(v_SQL_Text);

是也不是。您不能直接从代码编辑器中在典型的 SQL 语句中声明您是 运行 的变量。您可以(作为一个示例)在存储过程中声明变量。在您的代码编辑器 window 中,您更有可能创建一个 volatile table 并使用它来存储您的 "variable" 的值。