2016-03-23 80 views
-2

我已經習慣了rownum,並試圖理解邏輯。ROWNUM查詢返回

舉例來說,如果一個「部門」表中包含超過10行,我們運行一個查詢,說:

Select * from Department 
where Rownum between 1 and 7 

多少行將此查詢的回報?

+0

在Oracle它會返回7行。 –

+0

在SQL中,它會返回6嗎? – baltimorefanatic

+0

哪個RDBMS是爲了這個?請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。 –

回答

0

使用

select top 7 ... 
from Department 
order by some_field 

而不ROWNUM在
或使用ROW_NUMBER()是這樣的:

with 
    dep as (select ROW_NUMBER() over (order by some_field) as lp, d.* 
    from Department d) 
select * from dep where lp between 1 and 7