Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 аналог first/top  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1248
Товарищи как организовать запрос вот такого типа?

select first 1 id, field1, field2
from table1
order by id desc

Т.е. вытянуть все поля строки для максимального id

Я вижу 2 варианта:
1) нечто вроде... Ну или с группировкой...
select id, field1, field2
from table1
where id in (select max(id) from table1)

Этот вариант мне не нравится потому как использует подзапросы/группировки...

2) Использовать rownum - но он как Вы понимаете дается до сортировки а не после. Это как то обходится? Этот вариант мне нравится больше потому как он универсальнее... Нечто вроде:
select id, field1, field2
from table1
where rownum = 1
order by id desc

Можно конечно вот так:
select * from (
select id, field1, field2
from table1
order by id desc)
where rownum = 1

Но тоже совсем не эстетично...

Спасибо.
9 июл 10, 11:42    [9077366]     Ответить | Цитировать Сообщить модератору
 Re: аналог first/top  [new]
j2k
Member

Откуда: Новосибирск
Сообщений: 550
Петров Андрей

Но тоже совсем не эстетично...

И тем не менее - самое оно :)
9 июл 10, 12:02    [9077578]     Ответить | Цитировать Сообщить модератору
 Re: аналог first/top  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2852
Петров Андрей,

индекс по id + 2 вариант
9 июл 10, 12:03    [9077597]     Ответить | Цитировать Сообщить модератору
 Re: аналог first/top  [new]
JaRo
Member

Откуда:
Сообщений: 1659
Уникальность по id есть? Если нет, то два вариант различны.
9 июл 10, 12:24    [9077771]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить