Can you use CASE in a WHERE clause?

  • try using the following statement

    SELECT blah, blah FROM blah (CASE WHEN @ID > 0 THEN WHERE pkID=@ID END)

    Could someone tell me if we can have more than 1 case in a case statement. Like

    IF @ID > 0 THEN

    Use a WHERE clause like "WHERE pkID=@ID"

    ELSEIF @ID > 4

    Don't use a WHERE clause, pull back all rows

    Else

    Do something else

    END

  • Yes, you can use CASE in a WHERE clause:

    SELECT *

    FROM YourTable

    WHERE pkID =

      CASE @ID

        WHEN 0 THEN pkID

        ELSE @ID

      END

     

    This:

    >>try using the following statement

    >>SELECT blah, blah FROM blah (CASE WHEN @ID > 0 THEN WHERE pkID=@ID END)

    ... doesn't work, it's an example of trying to use dynamic SQL.

  • Thanks!

Viewing 3 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply