zoukankan      html  css  js  c++  java
  • case when then else end 用法

    CASE命令有两种语句格式。
    语法形式1:CASE expression
                WHEN expression_11 THEN expression_12
                 …
                WHEN expression_n1 THEN expression_n2
                [ELSE expression_m]
                END
    该语句的执行过程是:将CASE后面表达式的值与各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 condition_expression_1 THEN expression_1
                  …
                 WHEN condition_expression_n THEN expression_n
                 [ELSE expression_m]
               END
    该语句的执行过程是:首先测试WHEN后的条件表达式的值,如果其值为真,则返回THEN后面的表达式的值,否则测试下一个WHEN子句中的表达式的值,如果所有WHEN子句后的表达式的值都为假,则返回ELSE后的表达式的值,如果在CASE语句中没有ELSE子句,则CASE表达式返回NULL。
    注意:CASE命令可以嵌套到SQL语句中。

    【例】从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
  • 相关阅读:
    Error in as.POSIXlt.character(x, tz, ...) :
    java.util.ResourceBundle使用详解
    互联网网站的反爬虫策略浅析
    基于内容的图片检索CBIR(Content Based Image Retrieval)简介
    solr
    ETL
    cv 论文(CNN相关)
    输出字符串
    Minimum_Window_Substring两种方法求解
    C++primer中的TextQuery(读取文本)
  • 原文地址:https://www.cnblogs.com/wicub/p/5673462.html
Copyright © 2011-2022 走看看