惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
雷峰网
雷峰网
量子位
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
博客园 - Franky
罗磊的独立博客
宝玉的分享
宝玉的分享
博客园_首页
腾讯CDC
The GitHub Blog
The GitHub Blog
D
DataBreaches.Net
IT之家
IT之家
D
Docker
Microsoft Security Blog
Microsoft Security Blog
博客园 - 司徒正美
V
V2EX
月光博客
月光博客
N
Netflix TechBlog - Medium
爱范儿
爱范儿
I
InfoQ
P
Proofpoint News Feed

博客园 - seven1314pp

SAP ABAP json字段名映射 name_mappings 大写 小写 驼峰 纵深 /ui2/cl_json SAP ABAP 从一个程序调用另外一个程序的perform XXX(另一个程序) SAP ABAP 创建后台job SAP ABAP 客制表-表格维护器-自动带出描述等 SAP ABAP 选择屏幕按钮在同一行 SAP ABAP 一个通用的ALV框架(值得收藏) SAP ABAP SQL CASE 套 CASE SAP ABAP ALV 布局 SAP ABAP开发技巧-ALV报表通过函数获取结构或表字段写入FIELDCAT SAP ABAP财务开发必备ABAP语法之 DO VARYING abap 分割字符串 ABAP 读取其他ALV的显示结果 SAP 会计凭证字段可以更改 SAP ABAP弹出对对话框错误信息设计 SAP ABAP 部分增强点 [ABAP] ABAP 三类内表 PYTHON 简单的网页图片爬虫 财务凭证生成过程中增强技术 SAP BTE增强 ABAP FB02 修改会计凭证的抬头文本/行项目文本的函数 ABAP ALV 单元格按钮 SAP日志表 CDHDR和CDPOS SAP abap外部断点 abap screen页签开发注意事项 abap screen表格控件后续增加栏位
SAP ABAP SQL COALESCE 函数是用于处理 NULL 值的一种功能
seven1314pp · 2026-08-04 · via 博客园 - seven1314pp

SQL实例

select coalesce(success_cnt, 1) from tableA

当success_cnt 为null值的时候,将返回1,否则将返回success_cnt的真实值。

select coalesce(success_cnt,period,1) from tableA

当success_cnt不为null,那么无论period是否为null,都将返回success_cnt的真实值(因为success_cnt是第一个参数),当success_cnt为null,而period不为null的时候,返回period的真实值。只有当success_cnt和period均为null的时候,将返回1。

下面是CDS View的写法

COALESCE 函数还可以用于复杂的判断逻辑,返回满足条件的第一个非 NULL 值参数。例如,我们有一个 CDS View,用于显示销售订单的信息,其中包括订单号、订单日期和订单状态。我们希望在查询结果中,如果订单状态为空,则根据订单日期判断订单状态为 "已完成" 或 "未完成"。

@AbapCatalog.sqlViewName: 'ZSALESORDERS'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Sales Order Information'
define view ZSalesOrders as select from vbak
{
  key vbak.vbeln,
  vbak.erdat,
  vbak.status,
  COALESCE(vbak.status, CASE WHEN vbak.erdat <= '20230730' THEN '已完成' ELSE '未完成' END) as status_with_default
}

在上述示例中,我们使用 COALESCE 函数结合 CASE 表达式来实现复杂的判断逻辑。如果 vbak.status 字段为空,将根据订单日期 vbak.erdat 判断订单状态为 "已完成" 或 "未完成",并将结果显示在 status_with_default 字段中。