Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Nakeshi Member Откуда: Сообщений: 81 |
есть таблица с след набором данных create table dbo.temp2 ( val varchar(4), val_id int ) insert dbo.temp2 (val, val_id) values ('val1', 1) insert dbo.temp2 (val, val_id) values ('val2', 1) insert dbo.temp2 (val, val_id) values ('val3', 2) Без использования подзапросов возможно ли выбрать из dbo.temp2 значение val для которого val_id - максимальное ? В примере должно быть возвращено 'val3'. единственное решение которое приходит на ум select val from dbo.temp2 where val_id in (select MAX(val_id) from dbo.temp2) Но данное решение не удобно в том плане, что в задаче вместо dbo.temp2 - очень большой запрос - который не записать не во временные таблицы, ни куда. |
17 янв 13, 11:37 [13783464] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
select top(1) with ties * from dbo.temp2 order by val_id desc;with ties - на случай, когда есть несколько равных максимумов |
17 янв 13, 11:58 [13783686] Ответить | Цитировать Сообщить модератору |
Nakeshi Member Откуда: Сообщений: 81 |
То что нужно - спасибо за решение! Возьму на вооружение |
17 янв 13, 12:06 [13783774] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |