SQL。WHERE句の中にIF句を入れる

MS SQLのWHERE句の中にIF句を使用することは可能ですか?

例を挙げます。

WHERE
    IF IsNumeric(@OrderNumber) = 1
        OrderNumber = @OrderNumber
    ELSE
        OrderNumber LIKE '%' + @OrderNumber + '%'
ソリューション

CASE]1ステートメントの使用 UPDATE: 以前の構文(何人かの方に指摘されました)では、'動作しません。 CASEは以下のように使うことができます。

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

あるいは、@N. J. Reedが指摘するようにIF文を使うこともできます。

解説 (2)

IFではなく、CASEステートメントを使用してください。

解説 (0)

CASEステートメントを

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