【蜕变之路】第28天 项目部署 (2019年3月18日)

    Hello,大家好!我是程序员阿飞!今天我们主要学习一下SQL中 case when then else end用法。  

    1、第一种情况

        【语法】

            CASE 表达式1

                WHEN 表达式2 THEN 表达式3

                ...

                WHEN 表达式4 THEN 表达式5

                [ELSE 表达式6]

                END

        【原理】

            将表达式1的值与各WHEN字句后面的表达式的值进行比较,如果两者相等,则返回THEN后面的值,然后跳出case语句,

            否则返回ELSE子句中的表达式的值。ELSE子句是可选项,当case语句中不包含else子句时,若所有比较都失败,则case语句

            将返回NULL。

        【例子】从数据表stud_info中,选取stud_id、grade,如果grade为“男”则输出“M”,如果为“女”输出“F”。

            SELECT stud_id, sex=CASE gender

                          WHEN ’男’ THEN ’M’

                          WHEN ’女’ THEN ’F’

                        END

            FROM stud_info

        2、第二种情况

          【语法】

            CASE WHEN 表达式2 THEN 表达式3

                ...

                WHEN 表达式4 THEN 表达式5

                [ELSE 表达式6]

                END

            【原理】

              首先测试WHEN后的条件表达式的值,如果其值为真,则返回THEN后面的表达式的值,否则测试下一个WHEN子句中的表达式的值,

              如果所有WHEN子句后的表达式的值都为假,则返回ELSE后的表达式的值,如果在CASE语句中没有ELSE子句,则CASE表达式返回NULL。

            【例子】从stud_grade表中查询所有同学考试成绩情况,凡成绩为空者输出“未考”、小于60分输出“不及格”、60分至70分输出“及格”、

                  70分至90分输出“良好”、大于或等于90分时输出“优秀”。

                  SELECT

                      stud_id,

                      NAME,

                      score = CASE

                  WHEN grade IS NULL THEN

                      ’未考’

                  WHEN grade < 60 THEN

                      ’不及格’

                  WHEN grade >= 60

                  AND grade < 70 THEN

                      ’及格’

                  WHEN grade >= 70

                  AND grade < 90 THEN

                      ’良好’

                  WHEN grade >= 90 THEN

                      ’优秀’

                  END

                  FROM

                      stud_grade

        【PS】

                【蜕变之路】第28天 项目部署 (2019年3月18日)

    

上一篇:问题 B: C++习题 对象数组输入与输出


下一篇:char*”类型的值不能用于初始化“LPTSTR , Const char*”类型的值不能用于初始化“LPCTSTR