2017-08-31 55 views
1

在发布这个问题之前,我已经看过案例,但它不能解决我的问题。运行一个基于条件的选择

该情景是基于它是否是星期一,我需要从表中获取一些数据。我可以在PL/SQL块中编写它,但我想用普通的SQL来实现它。

有什么建议吗?

+0

为了扩大这一点,这是我想要做的 - 检查curdate是星期一,然后选择* from another_table。这在SQL中可能吗? – julie

回答

0

to_char(sysdate-3, 'DAY')将返回MONDAY可以修剪它,并使用比nulldecode返回不同的值:

select decode(TRIM(to_char(sysdate-3, 'DAY')),'MONDAY', 1, null) from dual 

编辑:

在可以

where decode(to_char(sysdate-3, 'fmDAY'), 'MONDAY', 1, null) =1 

* sysdate-3在何处选择,因为它是图尔SDAY今天

+1

'to_char(sysdate-3,'fmDAY')'也可以代替TRIM。 –

0

假设表具有相同的结构,这会工作:

select * from table1 
where to_char(sysdate, 'DY') = 'MON' 
union all 
select * from table2 
where to_char(sysdate, 'DY') != 'MON' 

使用一天文字像这样的是依赖于你的NLS设置。所以如果需要的话调整解决方案。