SQL-Case When用法

Posted Love In Winter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL-Case When用法相关的知识,希望对你有一定的参考价值。

/*
    人员:LDH
    功能:SQL-Case When用法
    日期:2021-5-14
 */
 
USE TestDB;
 GO
 
CREATE TABLE Employee
    (
      EmpId INT IDENTITY(20210001, 1)
                PRIMARY KEY ,
      EmpName NVARCHAR(20) NOT NULL ,
      EmpAge INT CHECK ( EmpAge BETWEEN 1 AND 150 )
                 DEFAULT 1 ,
      EmpStatus BIT NOT NULL
                    DEFAULT 0 --0:在职 1-离职
                    
    );
    
INSERT  INTO dbo.Employee
        ( EmpName, EmpAge, EmpStatus )
VALUES  ( N\'Jason\', 31, 0 ),
        ( N\'Tom\', 18, 1 ),
        ( N\'Lucy\', 21, 1 ),
        ( N\'Jack\', 31, 0 ),
        ( N\'Lily\', 18, 1 ),
        ( N\'Frank\', 21, 0 ),
        ( N\'Bush\', 51, 0 ),
        ( N\'Apple\', 18, 1 ),
        ( N\'Mack\', 21, 0 ),
        ( N\'Black\', 28, 1 ),
        ( N\'Pear\', 18, 0 ),
        ( N\'Banana\', 21, 0 );
        
SELECT  EmpId ,
        EmpName ,
        EmpAge ,
        EmpStatus
FROM    dbo.Employee;

-- =============================
-- 方法1
-- =============================

SELECT  EmpId ,
        EmpName ,
        EmpAge ,
        \'EmpStatus\' = CASE WHEN EmpStatus = 0 THEN \'在职\'
                           WHEN EmpStatus = 1 THEN \'离职\'
                      END
FROM    dbo.Employee;


-- =============================
-- 方法2
-- =============================
SELECT  EmpId ,
        EmpName ,
        EmpAge ,
        \'EmpStatus\' = CASE EmpStatus
                        WHEN 0 THEN \'在职\'
                        WHEN 1 THEN \'离职\'
                      END
FROM    dbo.Employee;

以上是关于SQL-Case When用法的主要内容,如果未能解决你的问题,请参考以下文章

CASE WHEN 及 SELECT CASE WHEN的用法(写了一坨烂代码发现两条sql就完成了, 哎)

SQL语句中case,when,then的用法

CASE WHEN 及 SELECT CASE WHEN的用法(写了一坨烂代码发现两条sql就完成了, 哎)

case when 用法

2015.7.17 case when then else end用法Oralcle与SQLserver一致

Sqlserver的case when 用法