2013-09-10 126 views
0

我不是很有经验的SQL(使用DB2),我尝试选择不同的ID符合以下条件:复杂DISTINCT,ORDER BY,WHERE SQL SELECT语句

select distinct a.ID 
from DOGTOWN a 
where a.DOGTOWNID > 0 
    and (a.DELIVERYDATE < (CURRENT_TIMESTAMP - 4680 DAYS)) 
order by a.ID ASC; 

这将返回我4记录:

2100353550 
2100353779 
2100356002 
2100356008 

这些回报都很好,但是当我试图做到这一点:

select distinct a.ID 
from DOGTOWN a 
where 
    a.DOGTOWNID > 2100356002 
    and a.DELIVERYDATE < (CURRENT_TIMESTAMP - 4680 DAYS) 
order by 
    a.ID ASC 
fetch first 3 rows only 

我很期待在这种情况下记录2100356008但它返回一个空的结果集..

感谢这个伟大的社区的所有专家。

+5

你能解释一下你的说法 “2100356008应该是2100356002之前”?这不是我理解价值秩序的方式。值的排序是正确的。 –

+0

你想要什么订单?升序(如你的代码)还是降序? –

+0

您不使用任何聚合函数。你有一个简单的*简单的香草*查询。你想要聚合什么,以及如何? –

回答

0

请不要介意,大家好,只是比较id错误的....回答是:

select distinct a.ID 
from DOGTOWN a 
where 
    a.ID > 2100356002 
    and a.DELIVERYDATE < (CURRENT_TIMESTAMP - 4680 DAYS) 
order by 
    a.ID ASC 
fetch first 3 rows only 
+1

鉴于我的评论提供了正确的答案,最好请求我提供答案,以便接受答案。 –