首页 / 问答 / SQL Server数据库如何在SELECT查询语句中使用if...then样式的判断语句呢?

SQL Server数据库如何在SELECT查询语句中使用if...then样式的判断语句呢?

SQL SQL Server 数据库 查询 1.85K 次浏览
0

在SQL Server数据库中,如何在SELECT查询语句中使用类似if...then形式的判断语句呢?比如:

SELECT IF(Obsolete = 'N' OR InStock = 'Y' ? 1 : 0) AS Saleable, * FROM Product
回复 [×]
提交评论
请输入评论内容

3 个回答

  • 0

    在SQL Server数据库中,SELECT查询语句不直接支持IF...THEN的语法,但我们可以使用CASE语句来达到IF...THEN的判断效果,CASE语句的简单语法版本如下:

    SELECT CASE <variable> WHEN <value>      THEN <returnvalue>
                           WHEN <othervalue> THEN <returnthis>
                                             ELSE <returndefaultcase>
           END AS <newcolumnname>
    FROM <table>
    

    CASE语法的扩展版本:

    SELECT CASE WHEN <test>      THEN <returnvalue>
                WHEN <othertest> THEN <returnthis>
                                 ELSE <returndefaultcase>
           END AS <newcolumnname>
    FROM <table>
    
    Rector的个人主页

    Rector

    2020-05-07 回答

    • 0

      CASE的具体示例如下:

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

      Rector

      2020-05-07 回答

      • 0

        在SQL Server 2012+版本的数据库中,可以使用IIF()内置函数,如下:

        SELECT IIF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Salable, *
        FROM   Product
        
        Rector的个人主页

        Rector

        2020-05-07 回答

        我来回答