Sql “我可以吗?”;在;仅用于;其中;条款
“IN”可以用在除“WHERE”以外的其他子句中吗?例如,在iif中:Sql “我可以吗?”;在;仅用于;其中;条款,sql,sql-server,Sql,Sql Server,“IN”可以用在除“WHERE”以外的其他子句中吗?例如,在iif中: iif((([Date] IS NOT NULL) AND ([Result] in ('PassedWithHonors', 'Passed')), 'Passed', 'Failed))) 谢谢。试试这个: case when [Date] IS NOT NULL AND [Result] in ('PassedWithHonors', 'Passed') then 'Passed' else 'F
iif((([Date] IS NOT NULL) AND ([Result] in ('PassedWithHonors', 'Passed')), 'Passed', 'Failed)))
谢谢。试试这个:
case when [Date] IS NOT NULL AND [Result] in ('PassedWithHonors', 'Passed')
then 'Passed'
else 'Failed'
end
试试这个:
case when [Date] IS NOT NULL AND [Result] in ('PassedWithHonors', 'Passed')
then 'Passed'
else 'Failed'
end
您可以在任何可以放置布尔表达式的地方放置
。其中一个地方是WHERE
子句,但是布尔表达式几乎可以位于查询中的任何位置。例如,在ON
子句中(如@jarlh所述),或在选择
,组
,中(例如)在案例
或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
所以,正如我在开始时所说的,在
中的可以放在任何可以放置布尔表达式的地方。你可以在
中放置一个,在任何可以放置布尔表达式的地方。其中一个地方是WHERE
子句,但是布尔表达式几乎可以位于查询中的任何位置。例如,在ON
子句中(如@jarlh所述),或在选择
,组
,中(例如)在案例
或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
所以,正如我在开始时所说的,
中的可以放在任何你可以放布尔表达式的地方。你可以放在这里和那里,例如CASE,ON,等等你可以试试。所有这些括号都不利于可读性。“你可以试试看”。。。你赢得了年度最佳答案!拍手,拍手。。。如果我提出这个问题,这意味着我已经尝试过了,但无论如何,谢谢你的帮助。在与我的回答不同的地方,我建议不要在你的WHERE
子句中使用IIF
;您可能会使查询不可搜索。如果您只是寻找一个通过的值和[date]
没有非空的值,那么只需执行:和[date]不为空并导致('passedWithOnors','Passed')
。不需要IIF
。你可以把它放在这里和那里,例如CASE、ON等等。你可以试试。所有这些括号都不利于可读性。“你可以试试看”。。。你赢得了年度最佳答案!拍手,拍手。。。如果我提出这个问题,这意味着我已经尝试过了,但无论如何,谢谢你的帮助。在与我的回答不同的地方,我建议不要在你的WHERE
子句中使用IIF
;您可能会使查询不可搜索。如果您只是寻找一个通过的值和[date]
没有非空的值,那么只需执行:和[date]不为空并导致('passedWithOnors','Passed')
。不需要IIF
。非常感谢,这正是我想要的!在教程中,他们总是在where
子句中使用它,所以我不确定。非常感谢,这正是我要找的!在教程中,他们总是在where
子句中使用它,所以我不确定