暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GaussDB数据库中的搜索CASE表达式示例

db_user 2023-10-23
131

1、基本概念
搜索CASE表达式是指在给定的表达式上执行基于不等式的比较,如果表达式满足给定的条件,则执行相应操作。即按指定顺序为每个WHEN子句的boolean_expression求值。返回第一个取值为TRUE的boolean_expression的result_expression。

2、基本语法
CASE WHEN boolean_expression THEN result_expression
         [...n]
         [ELSE else_result_expression]
END

说明:其中,boolean_expression等表示需要比较的条件,result_expression等表示满足对应条件时的操作结果,else_result_expression表示当expression不满足任何条件时的默认结果。
Tip:boolean_expression:可以包含子查询,但整个boolean_expression表达式返回值只能是布尔类型。
如果没有取值为TRUE的Boolean_expression,则当指定ELSE子句时,DLI将返回else_result_expression;当没有指定ELSE子句时,返回NULL值。

3、示例
假设根据工资的范围定义职员级别,可按如下SQL执行:

SELECT name
            ,salary
           ,CASE WHEN salary < 15000 THEN '初级'
                     WHEN salary BETWEEN 15000 AND 25000 THEN '中级'
                     WHEN salary >25000 THEN '高级'
                        ELSE NULL
              END AS level
FROM company
ORDER BY salary;


SQL语句解析:
这段SQL同上文,是从"company"表中选择员工的姓名(name)、薪水(salary)以及根据薪水等级进行分类(level)。
搜索CASE表达式的工作方式:
当薪水(salary)小于15000时,薪水等级被标记为"初级"。
当薪水在15000和25000之间(包括15000和25000)时,薪水等级被标记为"中级"。
当薪水大于25000时,薪水等级被标记为"高级"。
如果以上条件都不满足,薪水等级被标记为NULL。

综上,这个SQL语句的主要目的是获取员工信息,根据其薪水水平对其进行分类,并按照薪水的水平进行排序。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论