3
でCASEを使用した場合にも同様の質問は、私が理解することはできません構文エラーを取得とにかくhere構文エラーwhere句
を頼まれました。
これは私のコードです:
declare @MyParameter integer
se @MyParameter = Set At Runtime (could be -1 or any value >=1)
SELECT manyfields FROM manyjoinedtables
where
case when @MyParameter> -1 then
(FIELD1 **=** @MyParameter AND ANOTHERFIELD = Value**)**
end -- note: in case @MyParameter = -1 i do not want to add where condition
とにかく管理スタジオが赤く**上記に囲まれた2つの文字を強調しています。
なぜですか?構文エラーはどこですか?
ありがとうございます。リンクされた投稿の受け入れられた回答の構文が間違っています。 – LaBracca
わかりません。動作する可能性があります。しかし、where節で計算を実行していないとパフォーマンスが向上しますので、私はこのロジックに間違いなく挑戦します。これがあなたの質問に答えるならば、答えを受け入れたものとして自由に記入してください。 –
@ user193655この構文は、ケースの各ブランチがブール型であり、ケース式のデータ型全体がブール型であるため、ブール型のデータ型を持つRDBMSで動作します。しかし、SQL Serverはそうではありません。 –