0

私はこれに慣れていないので、これがばかげた質問であればすみません。

結果として 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))
4

1 に答える 1