Frage

Meine Tabelle hat die folgenden Spalten:

A  |  B  |  C  |  D  |  E  |  F  

Ich möchte zeigen diese wie folgt:

MyColumn  |  MyColumn2
  A       |    B
  C       |    D
  E       |    F

Wie Sie sehen, ich die Spalten als Paare mit einem benutzerdefinierten Spaltennamen angezeigt werden sollen. Die Paare sind Spalte A und B, Spalte C und D und Spalte C und D.

War es hilfreich?

Lösung

select A as [Col 1], B as [Col 2] from table
union all 
select C,D from table 
union all 
select E,F from table

Andere Tipps

Wenn ich verstehe Sie richtig Sie können dies tun, mit einer Gewerkschaft:

SELECT A as MyColumn, B as MyColumn2
UNION
SELECT C as MyColumn, D as MyColumn2
UNION
SELECT E as MyColumn, F as MyColumn2

Wenn Sie Ihre Datentypen nicht das gleiche für die passenden Spalten sind dann werden Sie den Datentyp zuerst konvertieren müssen, so etwas wie:

SELECT CONVERT(VARCHAR(10), A) as MyColumn, CONVERT(VARCHAR(10), B) as MyColumn2
UNION
SELECT CONVERT(VARCHAR(10), C) as MyColumn, CONVERT(VARCHAR(10), D) as MyColumn2
UNION
SELECT CONVERT(VARCHAR(10), E) as MyColumn, CONVERT(VARCHAR(10), F) as MyColumn2

Dies wird auf eine Milliarde Spalten nicht maßstab aber ...

Select A as MyColumn, B as MyColumn2 from Table
UNION
Select C as MyColumn, D as MyColumn2 from Table
UNION
Select E as MyColumn, F as MyColumn2 from Table

Diese Abfrage wird die Duplikate obwohl entfernen. So sagt, es gibt einen Datensatz in der Tabelle

  

Hallo | Welt | Hallo | Welt | Hallo | Welt

Meine wählen wird nur zurückkehren

  

Hallo | Welt

Sambo des kehren alle drei ...

In SQL Server 2005 Unpivot Operator kann Ihr Problem lösen. Unpivot konvertiert Spalten in Zeilen in sQL Server 2005 .

Hoffe, es hilft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top