GaussDB SQL基础语法示例-常见的条件表达式

news2025/1/15 22:53:54

目录

一、前言

二、条件表达式的概念及GaussDB中的常见条件表达式

三、GaussDB中常用的条件表达式(语法 + 示例)

1、CASE表达式

2、DECODE表达式

3、COALESCE表达式

4、NULLIF表达式

5、GREATEST/ LEAST表达式

6、NVL表达式

四、小结

一、前言

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

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

二、条件表达式的概念及GaussDB中的常见条件表达式

条件表达式是指在数据库中进行SQL语句查询时,根据特定条件筛选出符合要求的数据所使用的表达式。 在GaussDB数据库中,CASE、DECODE、COALESCE、NULLIF、GREATEST和NVL等都是常用的条件表达式。

  • CASE根据条件进行多分支判断,根据不同的条件返回不同的结果。
  • DECODEGaussDB数据库提供的函数功能,相当于SQL语言中的IF-THEN-ELSE语句,根据第一个参数和后续参数进行比较,返回符合条件的结果。
  • COALESCE返回第一个非空的参数值。如果所有参数都为空,那么就会返回NULL。COALESCE不会计算不需要用来判断结果的参数;即在第一个非空参数右边的参数不会被计算。
  • NULLIF用于比较两个字段的值,如果它们相等,则返回NULL,否则返回第一个字段的值。要求两个表达式数据类型一致。
  • GREATEST用于返回多个数字值中的最大值。
  • NVL接受两个参数,如果第一个参数为空,则返回第二个参数的值;如果第一个参数不为空,则返回第一个参数的值。

下文将逐一进行介绍。

三、GaussDB中常用的条件表达式(语法 + 示例)

1、CASE表达式

1)语法:

CASE WHEN condition1 THEN result1

           WHEN condition2 THEN result2

           ……

           ELSE result

 END

说明:根据条件进行多分支判断,根据不同的条件返回不同的结果。

  • 如果结果为真,CASE表达式的结果就是符合该条件所对应的result。
  • 如果结果为假,则以相同方式处理随后的WHEN或ELSE子句。
  • 如果各WHEN condition都不为真,表达式的结果就是在ELSE子句执行的result。如果省略了ELSE子句且没有匹配的条件,结果为NULL。

2)示例:

SELECT name

              ,age

              ,CASE

                         WHEN age < 18 THEN '未成年'

                         WHEN age >= 18 AND age < 60 THEN '成年'

                         ELSE '老年'

               END AS age_group

FROM company;

解析:

这段代码主要是从 "company" 表中选择 "name" 和 "age" 数据,并通过“CASE表达式”为每个用户生成一个根据年龄划分的组别('未成年'、'成年' 或 '老年')。

另参见,前面的文章《GaussDB SQL基本语法示例-CASE表达式》

2、DECODE表达式

1)语法:

DECODE(base_expression,compare1,value1,compare(n),value(n),default)

说明:GaussDB数据库提供的函数功能,相当于IF-THEN-ELSE语句,根据第一个参数和后续参数进行比较,返回符合条件的结果。

2)示例:

SELECT name

              ,salary

              ,DECODE(salary, NULL, '未知', 5000, '初级标准线', 20000, '中级标准线',30000, '高级级标准线', '其他') AS salary_level

FROM company ORDER BY salary ;

解析:

这段代码的目的是从 "company" 表中选择 "name" 和 "salary" 数据,并通过“DECODE表达式”定义工资级别('未知'、'初级标准线'、'中级标准线'、 '高级标准线'、‘其他’)。

3、COALESCE表达式

1)语法:

COALESCE(value1,value2,…)

说明:返回第一个非空的参数值。如果所有参数都为空,那么就会返回NULL。COALESCE不会计算不需要用来判断结果的参数;即在第一个非空参数右边的参数不会被计算。

2)示例:

SELECT name

              ,COALESCE(address, '未知地址') AS address

FROM company;

解析:这个查询将返回每个员工的名字和地址,通过“表达式COALESCE”判断,如果地址未知,它将显示 '未知地址'。

4、NULLIF表达式

1)语法:

NULLIF(value1,value2)

说明:用于比较两个字段的值,如果它们相等,则返回NULL,否则返回第一个字段的值。要求两个表达式数据类型一致。

2)示例:

SELECT NULLIF('abc', 'abc'); -- 返回NULL

SELECT NULLIF('abc', '123'); -- 返回'123'

5、GREATEST/ LEAST表达式

1)语法:

GREATEST(value1,value2,…)

LEAST(value1,value2,…)

说明:GREATEST用于返回多个数字值中的最大值。LEAST,从一个任意数字表达式的列表里选取最小的数值。以上的数字表达式必须都可以转换成一个普通的数据类型。

2)示例:

SELECT GREATEST(10, 20, 30); -- 返回30

SELECT LEAST(10, 20, 30); -- 返回10

6、NVL表达式

1)语法:

NVL(value1,value2,…)

说明:接受两个参数,如果第一个参数为空,则返回第二个参数的值;如果第一个参数不为空,则返回第一个参数的值,参数类型必须一致。

2)示例:

SELECT name

              ,salary

              ,NVL(salary,default_salary) AS d_salary

FROM company;

解析:这个查询将返回每个员工的名字和薪水,通过“表达式NVL”判断,如果salary为空,则用取默认的default_salary 。

四、小结

条件表达式是数据库查询中非常有用的工具,今天介绍的CASE、DECODE、COALESCE、NULLIF、GREATEST和NVL等,在GaussDB数据库中是非常常用的,通过使用这些条件表达式,我们可以更加灵活地对数据进行查询和操作,提高程序的效率和可读性。同时,它们也使得数据的处理更为方便和快捷,为数据分析和决策提供了有力的支持。

--结束

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

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

相关文章

聚观早报 |蔚来推出婚车服务;长城汽车第三季度财报

【聚观365】10月30日消息 蔚来推出婚车服务 长城汽车第三季度财报 AI汽车机器人极越01上市 谷歌投资初创公司Anthropic 东方财富第三季度营收 蔚来推出婚车服务 据蔚来汽车官方消息&#xff0c;蔚来宣布推出“蔚来用户专享”的婚庆用车定制服务。 据悉&#xff0c;该服务…

Web3风险不可回避,欧科云链携手FT中文、港大重塑行业信心

在香港Web3.0行业&#xff0c;技术推动了虚拟资产投资市场的快速增长&#xff0c;但另一方面&#xff0c;JPEX诈骗案等行业风险事件也接连发生&#xff0c;为Web3行业发展提供了重要警示。在刚刚结束的香港立法会施政报告答问会上&#xff0c;行政长官李家超表示&#xff0c;与…

三相电机输入线电流与输出功率之间的理论曲线

1.首先取一组电机参数&#xff1a; 定子电阻&#xff1a;11.421欧转子电阻&#xff1a;7.553欧漏感抗&#xff1a;42.90 毫亨互感抗&#xff1a;553.9毫亨空载电流&#xff1a;1.17安。 2. 利用T型等效电路公式绘图&#xff1a; import numpy as np import matplotlib.pyplot …

c语言数据类型的定义

c语言数据类型的定义 c语言数据类型的定义 c语言数据类型的定义一、数据类型的定义二、变量三、常量 一、数据类型的定义 数据类型的定义 在计算机中&#xff0c;不同的数据所需占用的存储空间是不同的&#xff0c;为了便于把数据分成所需内存大小不同的数据&#xff0c;充分利…

OceanBase安装部署

OceanBase自动化安装部署OBD 前提条件一、 OceanBase 集群部署规划1、创建用户2、规划目录 二、安装OceanBase环境1、 方案一&#xff1a;若机器能联网执行如下命令在线下载并安装 all-in-one 安装包2、 方案二&#xff1a;若机器不能联网需要在官网下载 all-in-one安装包&…

8+双疾病+WGCNA+多机器学习筛选疾病的共同靶点并验证表达

今天给同学们分享一篇双疾病WGCNA多机器学习的生信文章“Shared diagnostic genes and potential mechanism between PCOS and recurrent implantation failure revealed by integrated transcriptomic analysis and machine learning”&#xff0c;这篇文章于2023年5月16日发表…

雅思小作文笔记

mostly from Simon’s methods and techniques remember the task is describe what you see, not give an opinion. Just write a report.no conclusion, just a summary(the overview) Question type 小作文的题目类型大致如上 Simon所述&#xff0c;在描述数字的时候&…

云服务器 centos 部署 code-server 并配置 c/c++ 环境

将你的云服务器改为 centos 8 为什么要将云服务器的操作系统改成 centos 8 呢&#xff1f;原因就是 centos 7 里面的配置满足不了 code-server 的需求。如果你使用的是 centos 7 那么就需要你升级一些东西&#xff0c;这个过程比较麻烦。我在 centos 7 上面运行 code-server 的…

内含800个程序案例,最强Python学习资料来了,清华北大都在用!

IEEE Spectrum 重磅发布了 2023 年度编程语言榜单&#xff0c;Python 不仅在“Spectrum”综合排名中保持第一的位置&#xff0c;而且远超第二名 Java。Python以其简洁明了的语法、丰富的库支持和强大的社区生态&#xff0c;赢得了全球开发者的青睐。同时&#xff0c;Python的跨…

拥抱健康生活:TikTok引领健康与生活方式趋势

在当今数字化时代&#xff0c;社交媒体平台的崛起已经改变了我们获取信息、分享经验和塑造生活方式的方式。其中&#xff0c;TikTok已经成为引领健康和生活方式趋势的先锋&#xff0c;为数百万用户提供了丰富多彩的健康相关内容。这篇文章将探讨TikTok如何影响了我们的健康观念…

免费录屏软件哪个好?帮你轻松找到最佳选择

在当今社会&#xff0c;录制屏幕已经成为了生活和工作中不可或缺的一部分。无论您是教育工作者、演示者还是视频创作者&#xff0c;掌握一款优秀的免费录屏软件都能够帮助您更好地传达您的信息。可是免费录屏软件哪个好呢&#xff1f;本文将深入探讨三款常用的免费录屏软件&…

CSDN热榜分析4:生成词云图

文章目录 函数封装UI设计输出词云 热榜分析系列&#xff1a; CSDN热榜分析&#x1f525; UI界面&#x1f525; 领域热榜 函数封装 词云图的绘制功能早在最开始做热榜分析的时候就已经实现了&#xff0c;但需要依赖matplotlib来画图&#xff0c;而并没有直接导出功能&#x…

[Unity][VR]透视开发系列3-Passthrough应用的真机测试方法

【视频讲解】 视频讲解地址请关注我的B站。 专栏后期会有一些不公开的高阶实战内容或是更细节的指导内容。 B站地址: https://www.bilibili.com/video/BV1Zg4y1w7fZ/ 我还有一些免费和收费课程在网易云课堂(大徐VR课堂): https://study.163.com/provider/480000002282025/…

Apollo上机实践:一次对自动驾驶技术的亲身体验

上机实践 概述自动驾驶通信分布式系统开发模式开发工具 自动驾驶感知传感器特性感知流程及算法部署感知模型 自动驾驶决策规划决策规划流程和算法使用 Dreamview 进行控制在环的规划调试开发规划场景和算法 福利活动 主页传送门&#xff1a;&#x1f4c0; 传送 概述 Apollo 是…

【3妹教我学历史-秦朝史】1 秦朝初期

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 2哥 :3妹&#xff0c;在干嘛呢 3妹&#xff1a;读书呢…

不定长顺序表3

六.判空函数 刚刚忘记参数判断了 七.查找函数——在顺序表PS中 查找第一个key值&#xff0c;找到返回key值的下标&#xff0c;没有找到返回-1 不管能否扩容&#xff0c;查找都是在有效数据内部查找&#xff0c;所以可以把定长顺序表的查找Search函数搬过来 测试也跟定长的一样…

PCA9865 模块使用

本来是用来控制灯的&#xff0c;若用来控制舵机等&#xff0c;需外接电源 arduino arduino stm32 引脚A4为SDA&#xff0c;引脚A5为SCL asrpro 使用softiic库&#xff0c;使用arduino的 Adafruit_PWMServoDriver驱动库 进行修改 若要封装&#xff0c;需将Adafruit_PWMServoD…

Python实现文件压缩和解压功能

目录 一、常见的压缩格式 1、ZIP格式 2、RAR格式 3、7Z格式 二、压缩算法 1、Huffman编码 2、LZ77算法 3、Bzip2算法 三、解压算法 1、解压zip文件 2、解压rar文件 3、解压7z文件 总结 Python是一种功能强大的编程语言&#xff0c;具有易学易用的特点。它提供了许…

2021-arxiv-GPT Understands, Too

2021-arxiv-GPT Understands, Too Paper&#xff1a; https://arxiv.org/abs/2103.10385 Code&#xff1a; https://github.com/THUDM/P-tuning Prompt 简单理解 举例来讲&#xff0c;今天如果有这样两句评论&#xff1a; 1. 什么苹果啊&#xff0c;都没有苹果味&#xff0c…

DevChat:VSCode中基于大模型的AI智能编程助手

文章目录 1. 前言2. 安装2.1 注册新用户2.2 在VSCode中安装DevChat插件2.3 设置Access Key 3. 实战使用4. 总结 1. 前言 DevChat是由Merico公司精心打造的AI智能编程助手。它利用了最先进的大语言模型技术&#xff0c;像人类开发者一样高效地理解需求&#xff0c;并提供最佳的代…