【发布时间】:2019-02-19 07:24:35
【问题描述】:
查询在 TRUE 条件下正确获取 student_id,但在 else 条件下不获取 (max(gr_number)+1)。以下是我的疑问,请帮帮我。
Select case when count(*) > 0 then student_id else (max(gr_number)+1) end student_id
from student
where student_name ='faizan ahmed'
and email_id='abc@gmail.com'
and UPPER(student_dob)=UPPER('01-FEB-19')
and rownum = 1
group by student_id, gr_number ;
在 else 条件下返回 null。
【问题讨论】:
-
不相关,但是:您不应将 DATE 值存储在 VARCHAR 列中。条件
UPPER(student_dob)=UPPER('01-FEB-19')表明student_dob是一个 varchar 列 - 不要那样做。使用正确的DATE列