作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 SQL SELECT
语句中执行 IF...THEN
?
例如:
SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product
最佳答案
CASE
语句与 SQL 中的 IF 最接近,并且在所有版本的 SQL Server 上都受支持。
SELECT CAST(
CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END AS bit) as Saleable, *
FROM Product
如果您希望结果为 bool 值,则只需使用 CAST
运算符。如果您对 int
感到满意,则可以这样做:
SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product
CASE
语句可以嵌入到其他 CASE
语句中,甚至可以包含在聚合中。
SQL Server Denali (SQL Server 2012) 添加 IIF声明也可在 access 中找到(Martin Smith指出):
SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product
关于sql - 如何在 SQL SELECT 中执行 IF...THEN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63447/
我是一名优秀的程序员,十分优秀!