【发布时间】:2010-09-08 23:19:48
【问题描述】:
如何在SQL SELECT 语句中执行IF...THEN?
例如:
SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product
【问题讨论】:
-
你可能想看看这个link。关于:SQL WHERE 子句:避免 CASE,使用布尔逻辑
-
@Somebody:不是很相关,因为文章讨论了使用逻辑重写规则将蕴含转换为析取。线索是“逻辑”一词,即解析为真或假的东西,不适用于投影。 TL;DR 文章适用于
WHERE和CHECK,但不适用于SELECT。 -
@MartinSmith 的回答是最优雅的 - 在 SQL 2012+ 中使用 IIF。
标签: sql sql-server tsql if-statement case