<null>-Transport bei Firebird 2.5 und 3 unterschiedlich

Themen rund um den praktischen Einsatz von Firebird. Fragen zu SQL, Performance, Datenbankstrukturen, etc.

Moderator: thorben.braun

vr2
Beiträge: 214
Registriert: Fr 13. Apr 2018, 00:13

root funktioniert nicht ohne Typisierung?

Code: Alles auswählen

with recursive
  tree as (
    -- basis
    select b.child id, b.child parent, b.lvl, b.distanz, b.str
    from base b
    union all
    -- erweiterung
    select t.id, e.parent, t.lvl + 1, t.distanz, left(t.str, t.distanz)
    from ext e
    join tree t on t.parent = e.id),

  base as (
    select 688 child, 688 parent, 0 lvl, 0 distanz, null str from rdb$database
    union all
    select 689 child, 688 parent, 0 lvl, 1 distanz, 'aaa' from rdb$database),

  ext as (
    select child id, parent, distanz, str
    from base
    where distanz > 0)

select parent, id child, lvl, distanz, distanz - lvl dl, str
from tree
order by parent, id, distanz
Viele Grüße, Volker
Zuletzt geändert von vr2 am Sa 30. Jan 2021, 01:18, insgesamt 1-mal geändert.
bfuerchau
Beiträge: 485
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Nun, bei diesem Beispiel sehe ich keine Verwendung von NULL.
0 ist eine Konstante vom Typ int, so wie 0.0 eben double ist.
vr2
Beiträge: 214
Registriert: Fr 13. Apr 2018, 00:13

Hallo bfuerchau,

habe das ursprüngliche Beispiel um Verwendung von null erweitert

Viele Grüße, Volker
bfuerchau
Beiträge: 485
Registriert: Mo 7. Mai 2018, 18:09
Kontaktdaten:

Dann versuche das mal in der rekursiven CTE beim ersten Select.
Dass diese beim normalen union Select geht wissen wir doch schon;-).
Das ist dann aber eine spezifische Firebirdlösung die nicht mit jeder DB geht.
Antworten