如何从sybase获取第N行数据?

时间:2010-08-31 19:15:57

标签: sql sybase

每个用户都有一个包含多行的表。每个用户都有相同的行数,但每个用户的行ID都不同,那么我如何获得给定用户的第N行呢?

假设按user_id,row_id子句订购,这样可以保证任何给定用户的订单一致。

这是我在这里工作的sybase 12。

3 个答案:

答案 0 :(得分:3)

如果您正在使用Sybase SQL Anywhere(不清楚您是使用SA还是ASE),请查找start at语句{topselect子句。 3}}。例如:

select top 1 start at 7 * from mytable order by user_id, row_id

将检索第7行。

答案 1 :(得分:1)

SYBASE应具有窗口函数

SELECT * 
FROM   ( select row_number() over (order by user_id, row_id) as row, bar.*
         from   bar
       ) foo
WHERE  foo.row = 7

答案 2 :(得分:0)

如果您可以将seq_id列添加到每个user_id从0开始的表。您可以使用此列进行查询。