在Oracle SQL中按日期排序

时间:2013-09-10 13:42:11

标签: sql oracle

在尝试执行此查询时,我一直收到一条未正确结束的声明。这是我第一次真的搞乱日期。我试图将结果限制在日期字段从2013年1月1日及之后的那些内容中。

select * from tab1
inner join tab2
on tab1.projectid = tab2.projectid
where tab1.client_id = 100
and tab1.sa_type_code = 'SUP'
and tab1.pl_category = 'CAT33'
where trunc(tab1.log_date) >= TO_DATE('01-jan-2013','dd-MON-yyyy');

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

问题是你有两个WHERE clauses,其中SELECT语法只允许一个子句。

select * 
from  tab1
inner join tab2
on    tab1.projectid = tab2.projectid
where tab1.client_id = 100
and   tab1.sa_type_code = 'SUP'
and   tab1.pl_category = 'CAT33'
and   trunc(tab1.log_date) >= TO_DATE('01-jan-2013','dd-MON-yyyy');

答案 1 :(得分:2)

您不能有两个where条款:

select * from tab1
inner join tab2
on tab1.projectid = tab2.projectid
where tab1.client_id = 100
and tab1.sa_type_code = 'SUP'
and tab1.pl_category = 'CAT33'
and trunc(tab1.log_date) >= TO_DATE('01-jan-2013','dd-MON-yyyy');

如果您确实想按日期订购,请添加:

order by tab1.log_date

你可能想要:

order by tab1.log_date desc

首先获取最新日期。