GaussDB SQL基本语法示例-CASE表达式

news2024/10/6 14:22:58

目录

一、前言

二、CASE Expression(CASE表达式)介绍

三、GaussDB数据库中的简单CASE表达式

1、基本概念

2、基本语法

3、示例

四、GaussDB数据库中的搜索CASE表达式

1、基本概念

2、基本语法

3、示例

五、小结

一、前言

SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准(默认支持SQL2、SQL3和SQL4的主要特性)。

本系列将以《云数据库GaussDB—SQL参考》在线文档为主线进行介绍。

二、CASE Expression(CASE表达式)介绍

在GaussDB SQL中,CASE表达式(CASE Expression)是一个非常强大且常用的工具,可以用于在SQL中执行基于条件的操作。CASE表达式类似于IF-THEN-ELSE语句,但使用起来更加灵活,易于阅读和编写。

CASE表达式包含两种形式,一种是简单形式,一种是搜索形式。下面将分别介绍这两种形式的写法、语法以及使用方法。

三、GaussDB数据库中的简单CASE表达式

1、基本概念

简单CASE表达式是指在给定的表达式上执行基于等式的比较,如果表达式等于某个值,则执行某个操作。即依据input_expression与when_expression的匹配结果跳转到相应的result_expression。

2、基本语法

CASE input_expression

WHEN when_expression THEN result_expression

[...n]

[ELSE else_result_expression]

END

说明:其中,input_expression表示需要比较的表达式,when_expression等表示需要比较的值,result_expression等表示各个值相等时的结果,else_result_expression表示当input_expression不等于任何值时的默认结果

Tip:CASE:简单CASE函数中支持子查询,但须注意input_expression与when_expression是可匹配的。 另外,如果没有取值为TRUE的input_expression = when_expression,则当指定ELSE子句时,DLI将返回else_result_expression;当没有指定ELSE子句时,返回NULL值。

3、示例

假设根据固定的工资定义职员级别,可按如下SQL执行:

SELECT name

      ,salary

      ,CASE salary

                 WHEN 15000 THEN '初级'

                       WHEN 20000 THEN '中级'

                            WHEN 25000 THEN '高级'

                            WHEN 30000 THEN '高级'

                            WHEN 35000 THEN '高级'

                            ELSE NULL

                   END AS level

FROM company

ORDER BY salary;

SQL语句解析:

测试使用的是在GaussDB数据库中创建的一张company表。

这段SQL是从“company”表中选择员工的名字(name)、薪水(salary)以及一个根据薪水等级分类的字段(level)。并使用“ORDER BY salary”语句将结果按照薪水从低到高的顺序进行排序。

简单CASE表达式的工作方式:

如果“salary”字段的值等于15000,那么“level”字段的值就是“初级”。

如果“salary”字段的值等于20000,那么“level”字段的值就是“中级”。

如果“salary”字段的值等于25000或30000或35000,那么“level”字段的值都是“高级”。

如果“salary”字段的值不等于以上任何值,那么“level”字段的值就是NULL。

四、GaussDB数据库中的搜索CASE表达式

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语句的主要目的是获取员工信息,根据其薪水水平对其进行分类,并按照薪水的水平进行排序。

五、小结

GaussDB 中的CASE表达式是一个非常有用的工具,可以用于在SQL中执行基于条件的操作,实现条件判断和分支逻辑,进一步优化数据库查询和操作。在编写SQL代码时,可以根据具体的业务需求灵活选择简单形式或搜索形式来进行编写,这样可以大大提高编码效率和代码可读性。

附:常见使用场景,如:二次定义标签、饱和度统计、计算指标、数据格式转换等。

——结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1124249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谷歌年薪100万+的测试猿怎么写 python 代码?

谷歌员工怎么写 python 代码&#xff1f; 谷歌内部的 python 代码规范 熟悉 python 一般都会努力遵循 pep8 规范&#xff0c;也会有一些公司制定内部的代码规范。大公司制定规范的目的不是说你一定要怎样去使用编程语言&#xff0c;而是让大家遵守同一套规则&#xff0c;节省…

如何使用 VuePress 搭建博客网站并 Vercel 部署

先来看一下网站截图&#xff1a; 快速上手 1.创建并进入一个新目录 mkdir vuepress-starter && cd vuepress-starter2.使用你喜欢的包管理器进行初始化 yarn init # npm init3.将 VuePress 安装为本地依赖 yarn add -D vuepress # npm install -D vuepress4.创建你…

react 中setState 的三种写法

目录 1&#xff1a;使用对象形式的setState&#xff1a; 2&#xff1a;使用函数形式的setState: 3&#xff1a;使用回调函数&#xff1a; 1&#xff1a;使用对象形式的setState&#xff1a; this.setState({ count: 0 });2&#xff1a;使用函数形式的setState: this.setSt…

演讲回顾 | 龙智专家分享“支撑、共享与安全:芯片开发中的数字资产管理”

近日&#xff0c;龙智亮相D&R IP-SoC China 2023 Day&#xff0c;呈现集成了Perforce与Atlassian产品的芯片开发解决方案&#xff0c;助力企业更好、更快地进行芯片开发。 龙智资深顾问、技术支持部门负责人李培在展会现场带来了主题为《支撑、共享与安全&#xff1a;芯片…

C语言里的static变量其他语言是看不上还是学不去?

C语言里的static变量其他语言是看不上还是学不去? static变量在C语言中被用于具有静态存储期的局部变量或全局变量。它有以下几个特点&#xff1a; 1. 静态存储期&#xff1a;static变量在程序执行时分配内存&#xff0c;直到程序结束才会释放&#xff0c;其生命周期与程序的…

1024程序员节献礼,火山引擎ByteHouse带来三重产品福利

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 随着信息技术飞速发展&#xff0c;互联网、Web3、物联网、人工智能相继出现。 在这近三十年的高速发展中&#xff0c;“程序员”也成为构建丰富互联网世界的中坚力量…

FC-TSGAS-1624 CP451-10 MVI56E-MNETC IC697CMM742

FC-TSGAS-1624 CP451-10 MVI56E-MNETC IC697CMM742. Variscite的DART-MX8M-PLUS和VAR-SOM-MX8M-PLUS基于恩智浦i.MX 8M Plus SoC&#xff0c;集成人工智能能力高达每秒2.3万亿次运算(TOPS)。这些产品&#xff0c;结合海螺-8 AI处理器提供多达26个top&#xff0c;显著优于市场…

idea必装的插件 Spring Boot Helper 插件(创建 Spring Boot 项目)

Spring Spring让Java程序更加快速,简单和安全.Spring对于速度、简单性和⽣产⼒的关注使其成为 世界上最流⾏的Java框架。Spring官⽅提供了很多开源的项⽬,覆盖范围从Web开发到⼤数据,Spring发展到了今天,已经形成了⾃ ⼰的⽣态圈.我们在开发时,也倾向于使⽤Spring官⽅提供的技术…

大热电视剧《好事成双》里IT故事:科班程序员指法篇

自2023年9月19日在央视八套首播&#xff0c;并在腾讯视频同步播出以来&#xff0c;电视剧《好事成双》聚焦当代社会环境&#xff0c;《好事成双》用生动的群像故事触动人心&#xff0c;描绘了一幅当代都市男女的生活画卷&#xff0c;热度持续走高&#xff0c;成为中秋、国庆假日…

如何判断无损连接(例题)

目录 1. 定义2. 例题3. 补充 1. 定义 无损连接&#xff1a; 如果在关系模式的分解中&#xff0c;能够通过连接已分解的子关系来获得原始关系的信息&#xff0c;而不引入任何数据损失 候选关键字&#xff1a; 候选关键字是能够唯一标识每个元组的属性集。 2. 例题 设关系模式…

在Xamarin.Android项目中调用自己写的java jar包

一、开发环境 1.IntelliJ IDEA 2023.2.3 (Community Edition) 2.Visual Studio 2019 (v16.11.30) 3.Windows PowerShell 二、打开IDEA&#xff0c;编写Java脚本并编译为jar文件 1.打开IDEA--->File--->New--->Project... 三、打开Visual Studio 2019&#xff0c;…

SpringBoot_minio sdk使用自签名https证书错误处理

minio sdk使用自签名https证书错误处理 1.问题描述1.1 报错日志1.2 maven 依赖配置1.3 当前spring MinioClient配置 2.问题分析3.问题解决3.1 使用受信任的证书3.2 忽略证书验证3.2.1 minio客户端3.2.2 minio sdk 忽略证书验证3.2.2.1 拓展: 补充minioclient请求日志 4. 问题总…

如果重回大一学软件工程,你会做什么?

如果重回大一学软件工程&#xff0c;你会做什么&#xff1f; 说白了&#xff0c;就是想要一个过来人的学习路线呗&#xff1f;1、学好线性代数和离散数学&#xff0c;因为追本溯源&#xff0c;计算机行业的本质就是数学&#xff0c;更是算法、机器学习&#xff0c;视觉处理这些…

人工智能算法PPT学习

YOLO You only look once 是一种图像识别算法&#xff0c;速度较快。高效、灵活、泛化性能好&#xff0c;在工业中较为受欢迎。 图像金字塔 一幅图像的多个不同分辨率的子图构成的图像集合。是通过一个图像不断的降低采样率产生的&#xff0c;最小的图像可能仅仅有一个像素点…

Linux本地RStudio工具安装指南及远程访问配置安装RStudio Server

文章目录 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 前言 RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE&#xff0c;并通过 Web 浏览器进行访问…

【C++项目】高并发内存池第三讲PageCache框架涉及+核心实现(上)

PageCache 1. PageCache框架设计1.1整体设计1.2CentralCache向PageCache申请内存的逻辑设计 2.PageCache的核心框架实现这里着重介绍一下CentralCache向PageCache申请内存的过程&#xff1a; 1. PageCache框架设计 1.1整体设计 回顾: 如图所示 内存申请的过程是逐步往下的&a…

让你随时随地访问金蝶云星空企业版v8.0,内网穿透轻松实现远程办公!

文章目录 前言1. 金蝶云星空企业版v8.0安装下载1.1 登录金蝶官网下载安装包1.2 常见的安装下载问题 2. 金蝶云星空配置SQL Sever数据库2.1 创建数据管理中心2.2 创建完成后在服务器登录管理站点 3. 下载安装注册cpolar3.1 公网访问测试 4. 固定连接公网地址 前言 金蝶云星空专注…

【C++】二叉树进阶 -- 详解

一、二叉搜索树概念 二叉搜索树 又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点…

API接口采集商品详情页面数据(H5端和PC端)item_get-获得淘宝商品详情

API接口是一种商业软件开发工具&#xff0c;可以帮助开发者实现业务需求。通过 API接口&#xff0c;开发人员可以快速搭建自己的应用&#xff0c;实现数据采集分析和处理&#xff0c;也可以通过这个接口完成与其它系统的集成与通信。电商API就是各大电商平台提供给开发者访问平…

深度学习中的不确定性综述

领域学者&#xff1a; http://www.gatsby.ucl.ac.uk/~balaji/ 论文标题&#xff1a; A Survey of Uncertainty in Deep Neural Networks 论文链接&#xff1a; https://arxiv.org/pdf/2107.03342.pdf 概要 在过去的十年中&#xff0c;神经网络几乎遍及所有科学领域&#x…