Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Stored procedure in SQL Server (ordina per desc)?

Usa 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

Il tuo originale è l'equivalente di ORDER BY convert(varchar,videos.posteddate,106) DESC

Quindi stai ordinando per stringa "gg mon aaaa", non per data e ora effettiva desiderata (aaaa-mm-gg hh ecc.)

Immagino che questo sia SQL Server 2000:dalla memoria SQL Server 2005 non accetterà questa ambiguità