两个sql if语句

时间:2013-07-17 13:40:54

标签: sql sql-server

我想在sql中运行两个IF语句。 IF是两个不同的条件,例如:

IF (@user == 'Bob')
BEGIN
   SELECT * FROM table Where id = 1
END
IF (@animal == 'Cat')
BEGIN
   SELECT * FROM table WHERE id = 50
END

如果只有第一个条件是正确的,那么我想要的是第1行,如果满足两个条件,则返回1和50。 这在第二个IF语句中失败,是否需要添加另一个关键字?

5 个答案:

答案 0 :(得分:2)

IF (@user == 'Bob')
BEGIN
   SELECT * FROM table Where id = 1
END
ELSE IF (@animal == 'Cat') and (@user == 'Bob')
BEGIN
   SELECT * FROM table WHERE id = 50
END

答案 1 :(得分:2)

我建议单一声明:

SELECT
   *
FROM table
WHERE
    (@user = 'Bob' AND Id = 1)
    OR
    (@animal= 'Cat' AND Id = 50)

答案 2 :(得分:1)

IF (@user = 'Bob')
BEGIN
    IF (@animal = 'Cat')
    BEGIN
       SELECT * FROM table WHERE id = 50
    END
    ELSE
    BEGIN   
       SELECT * FROM table Where id = 1
    END
END

答案 3 :(得分:0)

我认为这可能适用于你想要的东西。

  SELECT * FROM table Where id = 1 && @user == 'Bob'

Union

  SELECT * FROM table WHERE id = 50 && @animal == 'Cat' && @user == 'Bob'

答案 4 :(得分:-1)

尝试使用嵌套if函数:

SELECT * FROM table Where id = IF(@user=='Bob',1,IF(@animal=='Cat',50));