Re: Wie initialisiere ich ein variable in einem SELECT



Stephan Menzel wrote:


SELECT @vDatum, @vDatum:=Datum FROM t, (SELECT @vDatum:='2000-01-01')
ORDER BY Datum
ist an so einer Abfrage was zu bemängeln, ich dacht das es gehen kann,
da ja subselect's eher ausgeführt werden!?

cu stephan

Kann jemand zu meiner Lösung mal noch ein Urteil bitte mit abgeben, ob
man das so machen kann?

Sollte eigentlich gehen, ist aber IMHO unschön - Du meinst zwar, jetzt zu
wissen, daß nur Kalenderdaten ab 2000 möglich sind - aber evtl. kommt
später einer auf die Idee, alte Daten nachtragen zu müssen, und dann
knallts.

Was spricht dagegen, daß der erste zurückgelieferte Datensatz ein
Startdatum von NULL hat? Das kann man ja immer noch separat behandeln.

Oder aber so was wie

SELECT COALESCE(@vDatum,'n/a'), @vDatum:=Datum FROM t ORDER BY Datum

Weil diese abfrage nicht Funktioniert da ja @vDatum nicht erzeugt ist
und somit die erste Spalte immer 'n/a' sein würde!



HTH,

Thomas

cu Stephan
.



Relevant Pages