在发布这个问题之前,我已经查看了案例,但它并没有解决我的问题。
根据是否是本周的星期一,我需要从表中获取一些数据。我可以在PL / SQL块中编写它,但我希望在纯SQL中实现它。
有什么建议吗?
答案 0 :(得分:0)
to_char(sysdate-3, 'DAY')
将返回MONDAY
您可以修剪它并使用decode
返回与null
不同的值:
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
之所以被选中,是因为今天是星期四
答案 1 :(得分:0)
假设这些表具有相同的结构,这将起作用:
select * from table1
where to_char(sysdate, 'DY') = 'MON'
union all
select * from table2
where to_char(sysdate, 'DY') != 'MON'
使用这样的日文字取决于您的NLS设置。因此,如果需要,请调整解决方案。