Firebird 6

Alles was nicht direkt zu den obigen Foren passt, findet hier Platz. Also Fragen zu allem was generell firebirdspezifisch ist oder sonst einen Bezug zum Forum hat.

Moderator: martin.koeditz

Antworten
jhoehne
Beiträge: 55
Registriert: Di 11. Dez 2018, 09:19

Moin!

Ich spiele grad so ein bisschen rum mit der FB6 Alpha.

FB6 wird Schemata können, Local Temporary Tables, CAST() auf Datumswerte mit einem Format-String (beide Richtungen), die ANY_VALUE Aggregatfunktion, standardkonformes LISTAGG anstelle von LIST() und noch einiges mehr.

Interessant finde ich z.B. die "UNLIST" Funktion, mit der eine Liste a la "1,2,3,4" als Tabelle angesprochen werden kann, wobei man die Werte dann noch casten kann (z.B. Strings auf Integer):

Code: Alles auswählen

SELECT SUM(x) FROM UNLIST('1,2,3,4' RETURNING INTEGER) AS u(x)
gibt 10. Man kann den Trenner auch mit angeben.

Die Funktion "GENERATE_SERIES" gibt eine einspaltige Tabelle mit Zahlenwerten zurück. Als Parameter übergibt man Start- und Zielwert und den Increment (default 1). Alle Werte können auch Fließkommazahlen sein.

Code: Alles auswählen

SELECT x FROM GENERATE_SERIES(1,3,0.5) AS u(x)
gibt 1.0, 1.5, 2.0, 2.5 und 3.0 als Werte für x zurück.

Fun fact: wir machen "4,3,2,1' aus '1,2,3,4':

Code: Alles auswählen

SELECT LISTAGG (ALL TRIM(u.x), ',') WITHIN GROUP (ORDER BY x DESC)
FROM UNLIST('1,2,3,4') AS u(x);
P.S.: für "Unlist" & Co. habe ich (und wahrscheinlich ihr auch...) natürlich eigene Funktionen definiert. Man braucht das ja ab und an.
--
Joachim
Antworten