1. ホーム
  2. sql

[解決済み】SQL。WHERE句の中のIF句

2022-04-06 23:09:21

質問

を使用することは可能ですか? IF 節を WHERE 句を使用することができますか?

WHERE
    IF IsNumeric(@OrderNumber) = 1
        OrderNumber = @OrderNumber
    ELSE
        OrderNumber LIKE '%' + @OrderNumber + '%'

解決方法は?

を使用します。 CASE ステートメント

UPDATEしてください。 以前の構文では(何人かの方から指摘がありましたが)うまくいきません。 以下のようにCASEを使用することができます。

WHERE OrderNumber LIKE
  CASE WHEN IsNumeric(@OrderNumber) = 1 THEN 
    @OrderNumber 
  ELSE
    '%' + @OrderNumber
  END

または、@のようなIF文が使えます。 N. J.リード が指摘する。