开发者社区> 问答> 正文

如何在SQL SELECT中执行IF…THEN ?

如何在SQL SELECT中执行IF…THEN ?

展开
收起
贺贺_ 2019-12-03 17:48:51 687 0
1 条回答
写回答
取消 提交回答
  • 该语句是 SQL 中最接近 IF 的语句,并且在所有版本的 SQL Server 上都受支持。CASE

    SELECT CAST(
                 CASE
                      WHEN Obsolete = 'N' or InStock = 'Y'
                         THEN 1
                      ELSE 0
                 END AS bit) as Saleable, *
    FROM Product
    
    

    如果希望结果为布尔值,则只需执行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 语句,该语句也可用于访问(Martin Smith指出):

    SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product
    
    2019-12-03 23:19:28
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载