Хранимая процедура в SQL Server (упорядочена по desc)? - PullRequest
1 голос
/ 26 февраля 2010

У меня есть хранимая процедура, которая будет выдавать последние записи, т.е. упорядочивать по добавленной дате, это моя процедура.

  select distinct top 5 videos.videoid,videos.videotitle,videos.videoname,
   convert(varchar,videos.posteddate,106) as  posteddate,videos.approvedstatus,
   videos.videoimage,(ISNULL(videos.views,0.0)) as [views],videos.privacy,
    (isnull(videos.rating,0.0)) as rating,videos.userid,
  users.userid,users.username from videos  left outer  join users on
videos.userid=users.userid
   where videos.approvedstatus='Y' and videos.privacy='P'
 order by  posteddate desc

но он не дает последние записи

когда я выполняю запрос

select * from videos order by posteddate desc

это дает точные записи. но хранимая процедура не дает точных записей. Можете ли вы помочь мне, спасибо.


1 Ответ

4 голосов
/ 26 февраля 2010

Использование ORDER BY videos.posteddate

  select distinct top 5
     videos.videoid,
     videos.videotitle,
     videos.videoname,
     convert(varchar,videos.posteddate,106) as  posteddate,
     videos.approvedstatus,
     videos.videoimage,
     (ISNULL(videos.views,0.0)) as [views],
     videos.privacy,
     (isnull(videos.rating,0.0)) as rating,
     videos.userid,
     users.userid,users.username
  from
     videos
     left outer join
     users on videos.userid=users.userid
  where
     videos.approvedstatus='Y' and videos.privacy='P'
  order by
     videos.posteddate desc

Ваш оригинал является эквивалентом ORDER BY convert(varchar,videos.posteddate,106) DESC

Таким образом, вы сортируете по строке "dd mon yyyy", а не по требуемому фактическому времени и дате (гггг-мм-дд чч и т. Д.)

Я предполагаю, что это SQL Server 2000: из памяти SQL Server 2005 не примет эту неоднозначность

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...