当前位置: 首页 > news >正文

【PostgreSQL17】6 条件表达式

CASE

SELECTfirst_name, last_name,CASE department_id WHEN 90 THEN '管理'WHEN 60 THEN '开发'ELSE '其他'END AS "部门"
FROM employees
;
-- COUNT会忽略NULL
SELECTCOUNT(CASE department_id WHEN 10 THEN 1 END) AS dept10_count,COUNT(CASE department_id WHEN 20 THEN 1 END) AS dept20_count,COUNT(CASE department_id WHEN 30 THEN 1 END) AS dept30_count
FROMemployees
;
SELECTfirst_name, last_name,CASEWHEN salary < 5000 THEN '低收入'WHEN salary BETWEEN 5000 AND 10000 THEN '中等收入'ELSE '高收入'END AS "收入"
FROMemployees
;

NULLIF

使用NULLIF避免除0报错。相同返回NULL,不同返回前者。

SELECT1 / NULLIF(0, 0)
;

image

SELECT1 / NULLIF(1, 0)
;

image

COALESCE

返回第一个不为空的值

SELECTCOALESCE(1, 2, 3) AS "1",COALESCE(null, 2, 3) AS "2",COALESCE(null, null, 3) AS "3"
;

image

SELECTfirst_name,COALESCE(commission_pct, 0)
FROMemployees
;

image
把一些null转化为了0,这样看起来舒服。

参考资料

[1] 不剪发的Tony老师【PostgreSQL开发指南】第17节 条件表达式

http://www.sczhlp.com/news/11019/

相关文章:

  • umask 权限掩码
  • 基于视觉推理的Img2LaTeX转换技术突破
  • docker常见命令汇总
  • mysql5.7 版本 only_full_group_by 导致原 sql 语句报错
  • chattr命令
  • Mysql连接数过多,导致连接不上数据库
  • inode与block详解
  • ARM intrinsics 指令集介绍 - svwhilelt_b32
  • localhost 上的 mysql 无法连接
  • 【日记】我真没想过还能这样整人(835 字)
  • localhost/IP 地址连接不上
  • Fluent Bit 日志合并正则表达式(下) - 实践
  • 欧洲蘑菇巨头 Okechamp 如何用 6 周升级物流调度系统?
  • redis-7.0.15 安装配置
  • 【渲染流水线】[几何阶段]-[曲面细分]以UnityURP为例
  • 打编程之026:职员时序安排模型
  • Homebrew构建来源探秘 - 实现可验证的软件供应链安全
  • 【完结22章】LLM应用全流程开发 全新技术+多案例实战+私有化部署
  • 2025.8.9 CSP-S模拟赛31
  • Luogu P2397 yyy loves Maths VI (mode) / Leetcode 229 多数元素 II 题解 [ 橙 ] [ 摩尔投票 ]
  • OMV
  • 参考第三方链接
  • GAS_Aura-Replication Mode
  • Gitee企业版效能度量升级:用数据“透视镜”驱动研发效能革命
  • C# Web开发教程(二)
  • vue-router 加载动态路由不能动态引入解决方案
  • Daily Probs 2
  • 深入解析:B-树与B+树
  • 盘点迪士尼电影下载入口|迪士尼动画电影合集高清资源下载全平台支持
  • x86 机器 上拉取 ARM 架构的 Docker 镜像