2014-02-18 32 views

回答

2

在關係數據庫中不存在「第三」的概念或「6」行除非可以定義排序次序。

假設你有一個列,通過它可以以定義一個排爲「第三」,或「4」命令的結果,下面將用Postgres的工作:

select * 
from (
    select col1, col2, col3, 
     row_number() over (order by your_sort_column) as rn 
    from your_table 
) t 
where rn in (3,4,6); 

哪裏your_sort_column是定義一個或多個行的那個。這可以是增量ID或時間戳列,用於存儲插入或更新行的時間。

0

在MySQL中它可以如下完成:

SELECT * from 
(SELECT (@row := @row + 1) num, tab.* FROM your_table, (SELECT @row := 0) r 
ORDER by your_sort_column) t 
WHERE (num % 3) = 0 

我們已經使用了模運算符來獲得行是在3

多看它在SQL小提琴工作:http://www.sqlfiddle.com/#!2/192b0/4

在PostgreSQL它可以完成如下:

select * 
from (
    select *, row_number() over (order by your_sort_column) as rn 
    from your_table 
) t 
where (rn % 3)=0 ; 

http://www.sqlfiddle.com/#!15/cc649/5

相關問題