Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Kombinieren zweier Tabellen mit unterschiedlichen Spalten

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Lukas2016, 4 Mai 2017.

  1. Lukas2016

    Lukas2016 Benutzer

    Hallo zusammen,

    ich bräuchte bitte Hilfe bei folgender Herausforderung. Ich würde gerne zwei Tabellen mit teils identischen und unterschiedlichen Spaltennamen zusammenführen. Die Spalten sind hier jedoch sehr variabel, sodass kein standardisiertes Spaltenset definiert werden kann.

    der Befehl:

    Select * From a
    union all
    Select * from b

    funktioniert dementsprechend nicht.

    Beispiel:

    upload_2017-5-4_18-6-53.png

    Lässt sich das irgendwie bewerkstelligen?

    Schonmal vielen Dank im Voraus!

    Gruß
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Ja. Mit leeren Tabellen ...

    Code:
    test=*# \d t1;
      Tabelle »public.t1«
     Spalte |  Typ  | Attribute
    --------+---------+-----------
     datum  | date  |
     m  | integer |
    
    test=*# \d t2;
      Tabelle »public.t2«
     Spalte |  Typ  | Attribute
    --------+---------+-----------
     datum  | date  |
     m  | integer |
     n  | text  |
    
    test=*# select 'tabelle1' as quelle, datum, m, NULL as neue_spalte from t1 union select 'tabelle2', datum, m, n from t2;
     quelle | datum | m | neue_spalte
    --------+-------+---+-------------
    (0 Zeilen)
    
    test=*#
    
    würde aber auch gehen, wenn da was drinne wäre, bin nur zu faul grad...
     
  3. ukulele

    ukulele Datenbank-Guru

    Ich glaube so wie Lukas das gern hätte funktioniert es nicht. Du musst schon die Spaltennamen nennen und in der richtigen Reihenfolge. Natürlich kann man mit NULL AS fehlende_spalte und 'Tabellenname' AS tabellenname auch in die Zieltabelle schreiben aber man muss schon explizit angeben und kann nicht einfach ein * da rein knallen.

    Automatisiert könnte man das mit dynamischem SQL aber da ist der Aufwand enorm.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden