VideMedlem sedan dec. 19998 577 inlägg Har ett nyhetssystem där man kan välja att göra en nyhet mer viktig och därmed läggs den överst (Order By). Nu är det så att man kan välja ett slutdatum där den skall sluta vara viktig (sticky).
Om tiden gått ut (Date > StickyDate) skall orderby-satsen ändras, kan m.h.a en IF-sats göra detta?
Kör SQL-server.
SELECT TOP 10 News.id AS ID, News.UID AS UID, News.Date,
News.Subject, News.Message, News.StickyDate, News.Sticky,
Members.UserName , Members.Email
FROM News LEFT OUTER JOIN
Members ON News.UID = Members.id ORDER BY Sticky Desc, Date Desc
Mvh, Vide
Engine^Medlem sedan dec. 20003 887 inlägg IF...ELSE, känns som en skum lösning ;)
Varför inte använda en variabel, som du sätter innan? Blir förvisso en select till, men det gör nog ingen skillnad... eller såhär:
ORDER BY IIf((StickyDate > Date), "blabla DESC", "blabla ASC")
Kanske?
LarsGMedlem sedan dec. 200012 464 inlägg case är lösningen på alla problem
SELECT TOP 10 News.id AS ID, News.UID AS UID, News.Date,
News.Subject, News.Message, News.StickyDate, News.Sticky,
Members.UserName , Members.Email
FROM News LEFT OUTER JOIN
Members ON News.UID = Members.id
ORDER BY case when sticky <> 0 and
stickyDate < getdate() then sticky else 0 end desc,
Date Desc
VideMedlem sedan dec. 19998 577 inlägg Tnx, funkar finfint... :D