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

Откуда: SPb
Сообщений: 425
Добрый день.

MS SQL 2000 SE
Есть несколько вариантов, выбирающих последнюю запись для некот. ключа:


declare @in int, @out int
set @in = 100

select @out = t.value
from table t
where t.id = @in and time = (select max(time) where id = @in)

select @out = t.value
from table t
inner join
(select id, max(time) as time
from table
where id = @in
group by id) t1
on t.id = t1.id and t.time = t1.time

select top 1 @out = t.value
from table t
where t.id = @in
order by t.time desc

индексы по id, time созданы

Есть ли еще какие нибудь способы определения последней записи ?
Какой на ваш взгляд самый быстрый ?
26 авг 03, 10:48    [314812]     Ответить | Цитировать Сообщить модератору
 Re: Как быстрее ?  [new]
q
Guest
Если это тест на сообразительность, то я бы сказал - третий.
Если нет - то посмотри планы выполнения
26 авг 03, 12:16    [315026]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить