0

where後で句で使用できるように、Select ステートメントで変数を設定する方法を探しています。

次に例を示します。

SELECT DateDiff(d,Time_Stamp,GetDate()) as Var1 FROM Report Where Var1 = 5

句が正常に動作することに気付きORDER BY Var1ましたが、それを where ステートメントで使用しようとすると、正常に動作せず、Var1列にエラーが発生します。

行が返されないため、これも機能しません。

DECLARE @Var1 int
SELECT @Var1 = DateDiff(d,Time_Stamp,GetDate()) FROM Report Where @Var1 = 5

これがあなたにとって理にかなっている場合は、このような冗長なコードを書く必要がないように、この場合に何をするか教えてもらえますか...

SELECT DateDiff(d,Time_Stamp,GetDate()) FROM Report 
 Where DateDiff(d,Time_Stamp,GetDate()) = 5

?

4

3 に答える 3

1

このようなものをお探しですか?

WITH qry AS
(
    SELECT r.*, DateDiff(d,Time_Stamp,GetDate()) diff
      FROM Report r
)
SELECT * FROM qry 
 WHERE diff > 1

SQLフィドル

于 2013-05-21T09:01:06.813 に答える