порядок sql по? как выбрать последние 25 добавленных строк?

#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, но упорядоченные по возрастанию после фильтрации.