Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
pkarklin Member Откуда: Москва (Муром) Сообщений: 74927 |
А что говорит план выполнения? |
||
22 мар 13, 11:28 [14080964] Ответить | Цитировать Сообщить модератору |
Паганель Member Откуда: Винница Сообщений: 22550 |
прочь сомненья set @Value= (select top 1 Value from Table order by Date desc) |
22 мар 13, 11:28 [14080965] Ответить | Цитировать Сообщить модератору |
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 | ![]() |