Avatar billede puddelundercover Nybegynder
28. marts 2007 - 10:37 Der er 4 kommentarer og
1 løsning

Sortering efter timestamp og alfabetisk

Hej,

Jeg ønsker at sortere et udtræk via "udloeber" og "navn"

"udloeber" indholder en række timestamps eller NULL.

Tricket er, at alle poster hvor timestamp ikke er NULL og større end NU skal komme først, og derefter alle poster hvor timestamp ér NULL eller mindre end NU. (NU er naturligvis det aktuelle timestamp).

Men posterne skal sorteres efter "navn" asc. Dvs. at timestampets værdi er ligegyldigt for sorteringen, det skal bare være der.

Giver det mening? I så fald, hvordan gøres dette?

Med venlig hilsen
Magnus
Avatar billede bromer Nybegynder
28. marts 2007 - 13:45 #1
Det kan du opnå ved at udtrække en ekstra kolonne du laver med en case [1]. Så du laver noget ala

SELECT ..,navn, CASE
  WHEN mytime IS NOT NULL AND mytime > NOW() THEN 1
  WHEN mytime IS NULL OR mytime < NOW() THEN 2
  END CASE as ordering
ORDER BY ordering asc, navn asc

Det er skrevet udfra hovedet så det indeholder måske nogle fejl, men princippet er der.

[1] http://dev.mysql.com/doc/refman/5.0/en/case-statement.html
Avatar billede puddelundercover Nybegynder
28. marts 2007 - 14:04 #2
Er dette en mysql 5 specifik ting?
Avatar billede bromer Nybegynder
28. marts 2007 - 14:19 #3
Nej, den er der også i version 4.1 [1]. Hvis du benytter tidligere versioner end 5 bør du dog nok overveje at opgradere snarest. Version 5 har en del ting man gerne vil have :)

[1] http://dev.mysql.com/doc/refman/4.1/en/control-flow-functions.html
Avatar billede puddelundercover Nybegynder
28. marts 2007 - 14:50 #4
Bonus :-D tusind tak
Avatar billede bromer Nybegynder
28. marts 2007 - 15:20 #5
Det var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester