可以" IN"用于除#34; WHERE"之外的其他条款例如在iif中:
iif((([Date] IS NOT NULL) AND ([Result] in ('PassedWithHonors', 'Passed')), 'Passed', 'Failed)))
谢谢。
答案 0 :(得分:3)
您可以将IN
放在可以放置布尔表达式的任何位置。其中一个地方是WHERE
子句,但布尔表达式几乎可以在查询中的任何位置。例如,在ON
子句中(如提及@jarlh),或在SELECT
,GROUP
,HAVING
条款中(例如)CASE
或IIF
(但仅限于这些功能)。
它甚至可以作为逻辑流操作的一部分进入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