Пример схемы:
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,)
Есть ли способ получить результаты, которые отображаются как:
ID | OptionID | OptionName | OptionLName
Я пытался добиться этого с помощью UNION ALL, но в моем примере это означает, что нужно повторить одну и ту же строку 3 раза, в моей настоящей задаче я должен сделать это 10 раз. Я не могу нормализовать таблицу из-за устаревшего кода. Есть ли способ пройти через Базовый ряд только один раз?
sql-server
sql-server-2012
JustinDoesWork
источник
источник