teradataのsql方言のこのSql Server(TSQL)コードに似た変数を宣言することに相当するのはありますか?teradataの変数の宣言
DECLARE @Somedate Date = GETUTCDATE();
SELECT TOP 10 * FROM SOMETABLE WHERE SOMEDATE = @Somedate;
teradataのsql方言のこのSql Server(TSQL)コードに似た変数を宣言することに相当するのはありますか?teradataの変数の宣言
DECLARE @Somedate Date = GETUTCDATE();
SELECT TOP 10 * FROM SOMETABLE WHERE SOMEDATE = @Somedate;
はいといいえ:これは、Teradataの上のストアドプロシージャにいくつかの変数として格納されている日付でこれを達成するための一つの方法があるのTeradata SQLアシスタント/ BTEQツール
SELECT TOP 10 * FROM SOMETABLE WHERE SOMEDATE = Current_Date;
SELECT TOP 10 * FROM SOMETABLE WHERE SOMEDATE = (SELECT MAX(SameDate) FROM SomeOtherTable);
で動作します。コードエディタから直接実行している典型的なSQL文では、変数を宣言することはできません。ストアドプロシージャの内部で変数を宣言できます(例として)。コードエディタウィンドウでは、揮発性テーブルを作成し、それを使用して "変数"の値を格納する可能性が高くなります。
Teradataでは次の構文を使用できますか? Current_Date
の部分は、スカラークエリで置き換えることができます。
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アシスタント、BTEQ? – Andrew
Teradataでストアドプロシージャ(またはマクロ)の外に変数を使用することはできません。 – dnoeth
これは、OPが変数によって何を意味しているのか、実際には何をしようとしているのかによって異なります。あなたは使うことができますか? SQLアシスタントでは、BTEQのためにシェルスクリプトを使用して変数をプラグインすることができます。 – Andrew