#sql-server #sql-server-2008
#sql-server #sql-server-2008
Вопрос:
я сохраняю новые строки .. и это сохраняется так
идентификатор, пользователь, сообщение я хочу сохранить последние 25 строк, но с этим
select top 25 usuario, mensaje
from chat
order by idchat asc
Я просто получаю первые 25, как я могу получить последние 25 строк?
таблица — это
create table chat
(idchat int primary key identity,
usuario varchar(50),
mensaje text);
если я выполняю
select top 25 usuario, mensaje from chat order by idchat desc
это возвращает плохую вещь.. например, я сохранил
'user1','mensaje1'
'user1','mensaje2'
'user1', 'mensaje3'
это возвращает
'user1','mensaje3'
'user1','mensaje2'
'user1', 'mensaje1'
Мне это не нужно..
Ответ №1:
Измените ASC на DESC:
select top 25 usuario, mensaje from chat order by idchat desc
Редактировать: вам нужны последние 25, но после фильтрации для последних 25 вы хотите, чтобы они были упорядочены по возрастанию?
SELECT * FROM
(
select top 25
usuario,
mensaje
from
chat
order by
idchat desc
)
ORDER BY
idchat ASC
Комментарии:
1. выберите * из (выберите 25 лучших * из порядка чатов по idchat desc) в качестве порядка chat1 по chat1.idchat asc
2. Да, я только что опубликовал правку с чем-то подобным. Вам нужны последние 25, но упорядоченные по возрастанию после фильтрации.