Beispielschema:
CREATE TABLE [dbo].[Base](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Option1ID] [int] NULL,
[Option2ID] [int] NULL,
[Option3ID] [int] NULL,
[Option1Name] [varchar] NULL,
[Option2Name] [varchar] NULL,
[Option3Name] [varchar] NULL,
[Option1LName] [varchar] NULL,
[Option2LName] [varchar] NULL,
[Option3LName] [varchar] NULL,)
Gibt es eine Möglichkeit, Ergebnisse zu erzielen, die wie folgt angezeigt werden:
ID | OptionID | OptionName | OptionLName
Ich habe versucht, dies mit UNION ALL zu erreichen, aber dies bedeutet, dass ich in meinem Beispiel dreimal dieselbe Zeile durchlaufen habe. In meinem eigentlichen Problem muss ich dies zehnmal tun. Ich kann die Tabelle aufgrund von Legacy-Code nicht normalisieren. Gibt es eine Möglichkeit, die Basisreihe nur einmal zu durchlaufen?
quelle