Ach, zo dag na dag de kleine geneugten van propere platformen terugvinden, ‘t is een beetje gelijk na een lange afwezigheid in het buitenland oude vrienden weer tegen het lijf lopen.

Vermoed ik toch. Niet dat ik al lang in het buitenland gezeten heb

Maar toch, aangenaam terug kennis te maken met altijd dezelfde vragen en oplossingen—case in point:

select case when datefrom is not null then datefrom else case when showfrom is not null then case when showfrom > datecreation then showfrom else datecreation end else datecreation end end eventdate, case when showfrom is not null then case when showfrom > datecreation then showfrom else datecreation end else datecreation end sortdate from tblevents order by sortdate desc

Als de datum van ingevuld is, dan is de datum de datum van, anders datum de aanmaakdatum tenzij de datum vanaf wanneer het getoond mag worden later is dan de aanmaakdatum, tenzij wanneer er geen datum is vanaf wanneer het getoond mag worden, want dat is het de datum van aanmaak. En de sorteerdatum is normaal gezien de datum vanaf wanneer het getoond mag worden, tenzij de datum van aanmaak later is dan die datum, tenzij de datum vanaf wanneer het getoond mag worden niet ingevuld is, want dan is het hoedanook de datum van aanmaak.

In ‘t proper geïndenteerd:

select
 case
   when datefrom is not null then datefrom
   else
     case
       when showfrom is not null then 
         case when showfrom > datecreation then 
           showfrom else datecreation end
       else datecreation
     end
 end
 eventdate,
 case
   when showfrom is not null then 
     case when showfrom > datecreation then 
       showfrom else datecreation end
   else datecreation
 end
 sortdate
from tblevents
order by sortdate desc

Ik vermoed dat ik er wel fouten in zal zitten hebben, maar er is voor het moment op het bureau teveel muziek aan ‘t spelen om me erop te concentreren—we zien wel als wanneer het in het honderd loopt



Reacties

2 reacties op “SQL”

  1. Aaaah. SQL-madness 🙂 Bijna even leuk als c++ ****madness :p

  2. – en einddatums. En als er geen einddatum ingevuld is, steek de begindatum in de einddatum. [en ja, ik weet dat er veel andere manieren zijn om hetzelfde properder te doen, maar toch: Leve SQL!] [enzie ook alhier, en ik heb er zo nóg een aantal over de jaren: ik vind het gewoon een schattige constructie [IMG]] Geschreven al luisterend naar: Max Raabe – – In der Bar zum Krokodil Geschreven al luisterend naar: