Обсуждение: Selecting a specific row

Поиск
Список
Период
Сортировка

Selecting a specific row

От
"Cason, Kenny"
Дата:
Is there an easy way to select, say, the 15th row in a table? I can't
use a sequence number because rows will sometimes be deleted resulting
in the 15th row now being a different row. I need to be able to select
the 15th row regardless of whether it is the same 15th row as the last
select.

Thanks,

Kenny Cason
The Boeing Company


Re: Selecting a specific row

От
Doug McNaught
Дата:
"Cason, Kenny" <kenny.cason@boeing.com> writes:

> Is there an easy way to select, say, the 15th row in a table? I can't
> use a sequence number because rows will sometimes be deleted resulting
> in the 15th row now being a different row. I need to be able to select
> the 15th row regardless of whether it is the same 15th row as the last
> select.

You can use LIMIT and OFFSET in your SELECT for this, but bear in mind
that rows are not stored in any guaranteed order, so use ORDER BY if
you need to.

-Doug
-- 
Let us cross over the river, and rest under the shade of the trees.  --T. J. Jackson, 1863


Re: Selecting a specific row

От
"Scott Marlowe"
Дата:
On Wed, 2004-08-04 at 16:11, Cason, Kenny wrote:
> Is there an easy way to select, say, the 15th row in a table? I can't
> use a sequence number because rows will sometimes be deleted resulting
> in the 15th row now being a different row. I need to be able to select
> the 15th row regardless of whether it is the same 15th row as the last
> select.

SQL itself has no natural ordering, so I'll assume you're doing
something like this:

select * from table order by seq_field

Just add offset and limit to the end:

select * from table order by seq_fields limit 1 offset 15;