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: