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

UNION von ungleichen Tabellen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Datenbank-Neuling, 8 Dezember 2018.

  1. Datenbank-Neuling

    Datenbank-Neuling Aktiver Benutzer

    Hallo Zusammen,

    Ich möchte gerne zwei Tabellen miteinander UNION auch wenn Sie unterschiedliche Anzahl von Spalten haben, indem ich die längere Spaltenüberschrift von beiden nehme.

    Die Anzahl der Spalten könnte ich über die [INFORMATION_SCHEMA].[COLUMNS] mit COUNT(*) ermitteln. Ich habe schon eine CASE WHEN oder TRY CATCH Abfrage versucht... aber diese brechen sofort ab
    wenn die Spalten nicht anzahltechnisch zusammen passen. Habt Ihr noch weitere Ansatzideen? :confused:

    Beispiel:

    BEGIN TRY
    (SELECT * FROM [SCHEMA].[TABELLE1] UNION ALL SELECT * FROM [SCHEMA].[TABELLE2])
    END TRY
    BEGIN CATCH
    print 'ERROR'
    END CATCH

    Hier kommt zum Beispiel der Error Fall erst garnicht durch.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Bei solchen Fragen stellt sich mir die Frage: warum will man das? Die eine Tabelle möge Bananen enthalten, die andere Schiffsanker. Man kann nun schwerlich das eine als Ersatz für das andere nehmen. Wozu also Bananen und Schiffsanker in ein gemeinsames Resultset stecken?
     
  3. Datenbank-Neuling

    Datenbank-Neuling Aktiver Benutzer

    Sie sind an sich gleich. Für den Fall das die eine Bananen und Schiffsanker enthalten und die andere nur Schiffsanker sollen die Schiffsanker ergänzt werden ;)
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Code:
    test=*# select 'Banane' as "ach, Scheißegal" union all (select 'Schiffsanker');
     ach, Scheißegal
    -----------------
     Banane
     Schiffsanker
    (2 rows)
    
    test=*#
    

    So?
     
  5. Datenbank-Neuling

    Datenbank-Neuling Aktiver Benutzer

    Hm... verstehe ich nicht ganz. Eine Tabelle A mit a Spalten will ich mit Tabelle B mit b Spalten UNION wobei a Teilmenge aus b ist.

    Für gewöhnlich ist ja für ein UNION Befehl a = b Voraussetzung.
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Again: siehe meine erste Frage in meiner ersten Antwort. Nur weil man etwas will ist nicht direkt impliziert, daß das auch sinnvoll ist.
     
  7. Datenbank-Neuling

    Datenbank-Neuling Aktiver Benutzer

  8. ukulele

    ukulele Datenbank-Guru

    Du wirst an den Select mit weniger Spalten welche anhängen müssen. Es reichen NULL Werte, handelt es sich allerdings um den ersten Select, dann müssen die Spalten glaube ich auch Namen haben.
    Code:
    SELECT spalte1,NULL AS spalte2 FROM tabelle1 UNION ALL SELECT spalte1,spalte2 FROM tabelle2
     
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