Peter Lykkegaard wrote:
>
> "René Rolighed Christensen" <rolighed@nospam-freestyler.dk> wrote in message
> news:3b54b648$0$69731$edfadb0f@dspool01.news.tele.dk...
> > Nu er det MS SQL Server, så MySQL kommandoer er ikke altid så heldige!
> >
> > Men jeg havde også selv tænkt over noget lignende, og er fundet frem til
> > følgende løsning:
> >
> > SELECT bla bla ORDER BY ISNULL(tid_til, DATEADD(year, 75, GETDATE())) DESC
> >
> > ...Altså erstatter jeg et eventuelt NULL med dags dato plus 75 år i
> > sorteringen.
> > Dette virker fint til mit brug, men vil selvfølgelig ikke kunne bruges i
> > mange situationer... alt efter hvad datoerne bruges til og hvad NULL
> betyder
> > i den sammenhæng!
> >
> Du kan evt returnere to recordsets fra din sp
> Først selecter du alle poster hvor dit felt er lig med Null og derefter
> resten af posterne
> Din løsning gør at MSSQL ikke bruger index, men laver en tablescan
Sikker?
Der er trods alt kun tale om en order by. På det tidspunkt bør al
selektering være afsluttet, og skidtet hældt over i en temp-tabel.
Hvis den tilhørende where-klausul er fornuftig kan MSSQL vel stadig
finde ud af at bruge den. Og hvis ikke, er der ikke tabt noget
alligevel.
--
Kristian Damm Jensen | Feed the hungry. Go to
kristian-damm.jensen@cgey.dk |
http://www.thehungersite.com
Two wrongs doesn't make a right, but three lefts does.