在SQL Where子句中使用Case或IF?

时间:2014-09-25 14:35:31

标签: sql-server tsql if-statement case

我正在尝试为我的where子句编写逻辑,它基本上根据函数过滤掉两个ID。

这是我写的:

CASE
        WHEN e.BOOLcolumn <> 1
        THEN o.idType NOT IN ('G','C')
        ELSE RETURN
        END

由于某种原因,我在CASE和NOT IN部分返回错误。这是在Where子句中的存储过程。我的目标是,如果我的布尔值为true,那么sproc应该像正常一样运行,如果它是假的,那么(&#39; G&#39;,&#39; C&#39;)不应该在其中。

我是一个超级新手,谷歌并没有给我很多关于使用...我只是不知道如何做到这一点。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

以下是您要查找的WHERE子句:

WHERE e.BOOLcolumn = 1
    OR o.idType NOT IN ('G', 'C')

希望这会有所帮助。

答案 1 :(得分:0)

如果您只想过滤掉两个ID&#34,为什么要使用CASE

WHERE e.column = 1 OR o.idType NOT IN ('G','C')