私はこれに慣れていないので、これがばかげた質問であればすみません。
結果として List を使用して CASE ステートメントを使用することは可能ですか?
WHERE
Service.Closed_Flag = 'False'
AND Service.Board_name = CASE
WHEN @SORT = 'True'
THEN (@BOARD)
ELSE Service.Board_name
END
@SORT はブール値です
@BOARD は、複数のピックを許可するオプションを備えたドロップダウン リストです。
@BOARD パラメータに複数のオプションを選択しない限り、上記のコードは正常に機能します。
CASE ステートメント内で IN を使用できることを望んでいましたが、THEN IN(@BOARD)?
解決策: 投稿後すぐに問題の解決策を見つけました。さらに 7 時間が経過するまで、質問に答えることはできません。これが私の解決策です。
CASE はスカラー値のみを返します。
ステートメントを次のように調整して、問題を解決しました。
WHERE
Service.Closed_Flag = 'False'
AND ((@SORT = 'True' AND Service.Board_name IN (@BOARD))
OR
(@SORT = 'False' AND Service.Board_name = Service.Board_name))