在teradata中声明变量

时间:2016-09-26 07:31:50

标签: teradata

是否有相当于在teradata的sql方言中声明类似于此Sql Server(TSQL)代码的变量?

DECLARE @Somedate Date = GETUTCDATE();

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

2 个答案:

答案 0 :(得分:1)

是和否。您不能在直接从代码编辑器运行的典型SQL语句中声明变量。您可以(作为一个示例)在存储过程内声明变量。在代码编辑器窗口中,您更有可能创建易失性表并使用它来存储“变量”的值。

答案 1 :(得分:0)

是否可以在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);