可以" IN"仅用于" WHERE"条款?

时间:2018-03-19 09:58:48

标签: sql sql-server

可以" IN"用于除#34; WHERE"之外的其他条款例如在iif中:

iif((([Date] IS NOT NULL) AND ([Result] in ('PassedWithHonors', 'Passed')), 'Passed', 'Failed)))

谢谢。

2 个答案:

答案 0 :(得分:3)

您可以将IN放在可以放置布尔表达式的任何位置。其中一个地方是WHERE子句,但布尔表达式几乎可以在查询中的任何位置。例如,在ON子句中(如提及@jarlh),或在SELECTGROUPHAVING条款中(例如)CASEIIF(但仅限于这些功能)。

它甚至可以作为逻辑流操作的一部分进入IF语句。例如:

IF @i IN (1,2) BEGIN
    SELECT TOP 1 * FROM MyTable;
END ELSE IF @i in (3,4) BEGIN
    SELECT TOP 1 * FROM YourTable;
END

所以,就像我在开始时说的那样,IN可以放在任何可以放置布尔表达式的地方。

答案 1 :(得分:1)

试试这个:

case when [Date] IS NOT NULL AND [Result] in ('PassedWithHonors', 'Passed')
     then 'Passed'
     else 'Failed'
end