[FIXED] Kombinieren Sie mehrere Spalten in 1 Spalte in derselben Tabelle

Ausgabe

Ich habe eine Beispieltabelle wie diese:

  id |  Name   | code1 | code2
   ------------------------------
  1  |  John   |  001  |  AC2
  2  |  Anna   |  002  |  AH5
  3  |  Brad   |  003  |  BB1

Ich möchte Spalte code1 und code2 (und eine weitere Spalte, falls vorhanden) in 1 Spalte kombinieren und Daten in einer anderen Spalte in der Tabelle duplizieren, damit das Ergebnis wie folgt lautet:

  id |  Name   | code 
   -------------------
  1  |  John   |  001  
  1  |  John   |  AC2  
  2  |  Anna   |  002  
  2  |  Anna   |  AH5  
  3  |  Brad   |  003  
  3  |  Brad   |  BB1 

Lösung

Sie müssen ein UNIONoder verwenden UNION ALL:

SELECT
    id,
    Name,
    code1 As code
FROM
    YourTable

UNION

SELECT
    id,
    Name,
    code2 As code
FROM
    YourTable

ORDER BY
    id,
    Name,
    code

UNION (Transact-SQL) – SQL Server | Microsoft-Docs

NB: Gemäß Aarons Kommentar unten UNIONwerden doppelte Zeilen entfernt, während sie eingeschlossen UNION ALLwerden. Wenn Sie denselben Wert in code1und code2auf einer einzelnen Quellzeile haben, UNIONwird eine einzelne Ausgabezeile UNION ALLerzeugt, während zwei identische Ausgabezeilen erzeugt werden. Aus deiner Frage geht nicht hervor, welches Verhalten du dir wünschen würdest.


Beantwortet von –
Richard Deeming


Antwort geprüft von –
Jay B. (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like