2

我想在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语句中失败了,我需要添加另一个关键字吗?

4

5 回答 5

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
于 2013-07-17T13:42:41.667 回答
2

我推荐一个声明:

SELECT
   *
FROM table
WHERE
    (@user = 'Bob' AND Id = 1)
    OR
    (@animal= 'Cat' AND Id = 50)
于 2013-07-17T13:44:38.793 回答
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
于 2013-07-17T13:44:56.153 回答
0

我认为这可能适用于您想要的。

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

Union

  SELECT * FROM table WHERE id = 50 && @animal == 'Cat' && @user == 'Bob'
于 2013-07-17T13:44:34.917 回答
-1

试试这个嵌套的 if 函数:

SELECT * FROM table Where id = IF(@user=='Bob',1,IF(@animal=='Cat',50));
于 2013-07-17T13:50:15.083 回答