【发布时间】:2019-02-06 18:47:21
【问题描述】:
我想写一个case语句,我可以根据条件在一行“PASS”或“FAIL”中看到结果。
select max(a.ODS_Process_Timestamp) from ODS.DW_COUNTRY a where a.ODS_CURRENT_FLAG=1;
这个输出是
06-FEB-19 06.25.40.000000000 AM
select a.ODS_Process_Timestamp,a.ODS_CURRENT_FLAG from ODS.DW_COUNTRY a
where a.ODS_CURRENT_FLAG=1 group by a.ODS_CURRENT_FLAG,a.ODS_Process_Timestamp;
这个输出是
ODS_Process_Timestamp ODS_CURRENT_FLAG
06-FEB-19 06.25.40.000000000 AM 1
现在我想要一个 case 语句,我将比较第一个查询 max(a.ODS_Process_Timestamp) 是否等于第二个查询 ODS_Process_Timestamp ,所以它是一个通过案例,否则失败。
select case when
(select max(a.ODS_Process_Timestamp) from ODS.DW_COUNTRY a where
a.ODS_CURRENT_FLAG=1)=(l.ODS_Process_Timestamp from
(select a.ODS_Process_Timestamp,a.ODS_CURRENT_FLAG from ODS.DW_COUNTRY a
where a.ODS_CURRENT_FLAG=1 group by
a.ODS_CURRENT_FLAG,a.ODS_Process_Timestamp)l)
then 'Pass' else 'Fail'
end as Timestamp_validation from ODS.DW_COUNTRY;
预期的结果应该是这样的
Timestamp_validation - PASS
【问题讨论】:
-
1 AD Andorra Europe ROW No No 01-JAN-00 12.00.00.000000000 AM 31-DEC-18 12.00.00.000000000 AM 0 08-MAR-16 08.35.00.322125000 PM 0
标签: sql database oracle oracle11g