2013-09-10 125 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

鑑於我的評論提供了正確的答案,最好請求我提供答案,以便接受答案。 –