Oracle SQL:根据last_name列条件控制first_name返回值的查询需求
Oracle SQL 查询:last_name为空时返回空的first_name
可以通过两种简单方式实现需求,无需修改原数据表,仅在查询层面处理结果:
方法1:使用CASE表达式
通过CASE表达式判断last_name是否为空,为空则返回NULL(空值),否则返回原first_name值:
SELECT CASE WHEN last_name IS NULL THEN NULL ELSE first_name END AS first_name, last_name FROM your_table_name;
方法2:使用Oracle内置函数NVL2
Oracle的NVL2函数专为空值判断设计,语法为NVL2(判断字段, 非空时返回值, 空时返回值),完美匹配需求:
SELECT NVL2(last_name, first_name, NULL) AS first_name, last_name FROM your_table_name;
示例效果
假设原表数据:
| first_name | last_name |
|---|---|
| John | NULL |
| Jane | Doe |
| Bob | Smith |
执行查询后结果:
| first_name | last_name |
|---|---|
| NULL | |
| Jane | Doe |
| Bob | Smith |
内容的提问来源于stack exchange,提问作者cubila
相关产品推荐
相关产品推荐

