0

私はSQLクエリを書きましたが、where句で関数を使用していくつかの行をフィルタリングしました。

私の質問は次のとおりです。選択プロジェクションで結果関数を使用したいのですが、パフォーマンスのためにdbo.funcを再度呼び出したくないので、この作業を行うにはどうすればよいですか?

私のクエリは次のとおりです。

Declare @pDate datetime=gatdate()
Select tb1.ID,tb1.Date1,dbo.Func(tb1.Date1,@pDate2)   From tb1 Where 30<=dbo.Func(tb1.Date1,@pDate2)  

ありがとう。

4

2 に答える 2

0

あなたの質問は不明確ですが、それでもお答えします。

関数を SQL クエリで使用するには、SQL データ型のすべてのパラメータを受け入れ、SQL データ型のデータを返す必要があります。Transact-SQL プロシージャおよび関数でのみ使用するように特別に設計された型は、関数に渡したり、関数から返したりすることはできません。ただし、関数はこれらの T-SQL データ型を内部的に使用できます。

関数がこの条件を満たす場合、使用している構文は正しいです。

于 2013-03-07T08:23:51.017 に答える