Как я могу получить только N-ую строку данных из Sybase? - PullRequest
1 голос
/ 31 августа 2010

У меня есть таблица с несколькими строками для каждого пользователя. У каждого пользователя будет одинаковое количество строк, но идентификаторы строк у каждого пользователя будут разными, так как же получить только N-ую строку для данного пользователя?

Предполагая порядок по user_id, предложению row_id, чтобы вы могли гарантировать согласованный порядок для любого данного пользователя.

Это sybase 12. Я работаю здесь.

Ответы [ 3 ]

3 голосов
/ 22 июня 2011

Если вы используете Sybase SQL Anywhere (неясно, используете ли вы SA или ASE), посмотрите предложения start at и top оператора select здесь . Например:

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

получит 7-ю строку.

1 голос
/ 22 июня 2011

SYBASE должна иметь функции управления окнами

SELECT * 
FROM   ( select row_number() over (order by user_id, row_id) as row, bar.*
         from   bar
       ) foo
WHERE  foo.row = 7
0 голосов
/ 31 августа 2010

, если вы можете добавить seq_id столбец к той таблице, которая начинается с 0 для каждого user_id. Вы можете запросить с этим столбцом.

...