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

Откуда:
Сообщений: 96
Есть таблица Table с полями Date(уникальное) и Value. Нужно получить значение поля Value для записи, у которой Date максимально.

Так сработает точно:
select @Value=Value from Table where date=(select Max(Date) from Table)

А можно ли так:
select top 1 @Value=Value from Table order by Date desc

Не получится ли так, что сервер сначала присвоит значение переменной, а потом отсортирует?
22 мар 13, 11:27    [14080958]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно найти запись с максимальным значением?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Ramzay_
Не получится ли так, что сервер сначала присвоит значение переменной, а потом отсортирует?


А что говорит план выполнения?
22 мар 13, 11:28    [14080964]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно найти запись с максимальным значением?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
прочь сомненья
set @Value= (select top 1 Value from Table order by Date desc)
22 мар 13, 11:28    [14080965]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно найти запись с максимальным значением?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
BOL->SELECT @local_variable

SELECT @local_variable is typically used to return a single value into the variable. However, when expression is the name of a column, it can return multiple values. If the SELECT statement returns more than one value, the variable is assigned the last value that is returned.

В данном случае запись всего одна будет.
22 мар 13, 11:31    [14080997]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить