首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

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

目录 一、前言 二、条件表达式的概念及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:根据条件进行多分支判断,根据不同的条件返回不同的结果。 DECODE:GaussDB数据库提供的函数功能,相当于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数据库中是非常常用的,通过使用这些条件表达式,我们可以更加灵活地对数据进行查询和操作,提高程序的效率和可读性。同时,它们也使得数据的处理更为方便和快捷,为数据分析和决策提供了有力的支持。 --结束

优秀的个人博客,低调大师

.NET 企业级基础框架 Furion v4.8.7.3 发布

距上一次发布已过了 11天,这期间收到了 79 个 Issue,进行了三处改进和两项修复,经过长期高频迭代,Furion 越来越稳定。 选择理由 选择Furion的十大理由​ 大多数企业招聘的.NET架构师/程序员绝大概率没有百小僧的水平。 百小僧全天候待命,只要确认Bug,当天修复,当天发版。 Nuget总下载量超660 万,坑洼前人早就躺过,你不是一个人在战斗。 超300万字的保姆级使用手册,”保温杯里泡枸杞“ 的养生法(护发)你不需要。 程序员上岗无需培训,直接丢文档了事,实习生来了都可以扛大旗。 MIT开源协议,商用无猫腻,超高质量的源码,可做企业内部框架。 底层核心无第三方依赖,应用层仅依赖了两个第三方包,功能自主可控。 框架持续创新迭代,精益求精,为软件系统开发维护保驾护航。 超230位开发者贡献代码和文档,国内.NET开源项目仅此一份。 选择Furion还需要理由吗? Furion已经持续迭代跨了 4 个年头(2020,2021,2022,2023),发布的版本超 700 个:查看日志 您的痛点,Furion 已阅已历;Furion 的惊喜,您且慢慢享受。 还是那句话:只有中国人才懂中国人,选来选去还是 Furion 好用。时间不等人,市场不等人,与其选择新的框架,不如选择成熟稳定且持续迭代的框架。 成熟,稳定,高效是企业及开发者的首要选择,Furion已具备这个条件。👍 项目信息 Gitee:https://gitee.com/dotnetchina/Furion Github:https://github.com/MonkSoul/Furion 文档:https://dotnetchina.gitee.io/furion 本期更新 v4.8.7版本细节:https://gitee.com/dotnetchina/Furion/issues/I6GVN82023.02.22 https://furion.baiqian.ltd/docs/upgrade 新特性 [新增] 审计日志LoggingMonitor支持对参数贴[SuppressMonitor]特性跳过记录4.8.7.3⏱️2023.03.01#I6IVGW [新增] 审计日志LoggingMonitor监听TraceId、ThreadId、Accept-Language4.8.7.1⏱️2023.02.27df35201 [新增] 规范化结果UnifyContext.GetSerializerSettings(string)静态方法4.8.7.1⏱️2023.02.27#I6HM7T 突破性变化 [升级]适配.NET8 Preview.14.8.7⏱️2023.02.22 [升级]脚手架支持创建.NET8 Preview.1项目4.8.7⏱️2023.02.22 问题修复 [修复] 审计日志LoggingMonitor对特定参数贴有[FromServices]特性依旧记录问题4.8.7.3⏱️2023.03.0117b134e [修复]Swagger接口排序同时指定Tag和Order之后无效4.8.7.2⏱️2023.03.01#I6IQDI#I6IP66 其他更改 [调整] 审计日志LoggingMonitor返回值泛型字符串显示格式4.8.7.1⏱️2023.02.27df35201 文档 [新增]ASP.NET 8 集成文档 [新增].NET7 升级 .NET8文档 [更新] 定时任务文档、中间件文档、规范化结果文档、动态WebAPI文档、日志记录文档 本期亮点 1.LoggingMonitor支持跳过特定参数记录 在Furion 4.8.7.3+版本新增[SuppressMonitor]特性支持标记参数(支持类型,方法)不被记录,如: [LoggingMonitor] public string GetName([SuppressMonitor]SomeType type, int id) // type 参数将跳过记录 { return nameof(Furion); } 2.LoggingMonitor记录更多信息

优秀的个人博客,低调大师

bootx-platform v1.1.0-beta-3:基础功能补全

项目介绍 项目地址:https://gitee.com/bootx/bootx-platform 基于 Spring Boot 框架打造,针对单体式应用进行专门设计,提供整套服务模块,努力为打造全方位企业级开发解决方案, 致力将开源版打造成超越商业版后台管理框架的项目。 特色功能 针对敏感信息,可以通过注解配置实现返回时自动脱敏 针对重要信息,可以通过添加注解,实现在数据库中保密存储,配合数据脱敏使用可以更好的保护系统数据的安全 支持多种范围的数据权限控制,如只能查看自己、只能查询指定部门、用户、可以查询全部的数据等等 支持嵌套查询的超级查询构造器,自动生成对应条件 SQL 语句 异常时返回链路追踪 id,方便错误日志追踪 提供项目对应的代码生成器,方便开发 定制 Mybatis Plus 组件,更方便开发 支持多种消息中间件 支持全局级 Websocket 集成,通过事件机制可以分发到指定页面 项目选用组件说明 组件 默认启用 是否必须 备注 MySQL 是 否,理论上可以替换为其他关系型数据库 默认使用的数据库,部分 SQL 语句使用了 MySQL 专属语法 Redis 是 是 session 存储,缓存等等都用到了 Redis RabbitMQ 是 否 不使用时需要删除对应的代码即可 MongoDB 是 否 日志存储默认使用的 Mongo,去掉 mongo 时需要切换存储类型; 文件管理默认使用的是 Mongo,去掉 Mongo 时,需要切换文件类型 MQTT 是 否 不使用时需要删除对应的代码即可 Quartz 是 否 定时任务默认使用的是 Quartz ,可以切换为 XXL-JOB XXL-JOB 否 否 可以用来替代 Quartz 本次功能更新 增加系统信息监控 增加Redis信息监控 增加前端顶栏全屏按钮、菜单搜索、消息通知功能 增加修改用户邮箱功能 增加修改用户手机号功能 增加消息模板渲染测试 增加定时任务 EasyCron 组件,便于操作 增加富文本编辑 优化菜单操作增加复制项 优化短信登录登录逻辑 优化axios网络连接失败时的提示 fix: 修改前端校验工具类中的一些校验错误 新功能截图 系统信息监控 菜单栏增加菜单搜索、程序全屏、消息通知等功能 自助手机绑和邮箱绑定修改 富文本编辑 定时任务增加EasyCron组件

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册