Vertica SQL:按Cust ID处理空白Name字段显示N/A或有效名称
Vertica SQL 处理空白Name字段需求解决方案
问题场景
现有表格数据:
| Name | Cust ID | | | 1 | | | 2 | |Prem | 2 |
需求:
- 当
Cust ID为1时,因Name字段空白,显示N/A - 当
Cust ID为2时,忽略空白Name条目,显示有效名称Prem
期望结果:
|Name | Cust ID | |N/A |1 | |Prem |2 |
解决方案SQL
可以通过分组聚合+条件筛选实现需求,以下是Vertica兼容的SQL语句:
SELECT COALESCE(MAX(Name) FILTER (WHERE Name IS NOT NULL AND Name <> ''), 'N/A') AS Name, "Cust ID" FROM your_table GROUP BY "Cust ID";
语句说明
- 分组处理:通过
GROUP BY "Cust ID"将同一客户的所有记录合并为一组 - 筛选有效Name:
MAX(Name) FILTER (WHERE Name IS NOT NULL AND Name <> '')会提取每组中非空且非空白的Name值(因为每组仅存在一个有效Name,MAX可直接获取该值) - 补全空白场景:
COALESCE函数会在分组后无有效Name时,返回指定的N/A文本
内容的提问来源于stack exchange,提问作者Premvardhan Chanda
相关产品推荐
相关产品推荐

