У меня есть такая таблица:
+----------+----------+----------+----------+----------+
| COLI_KEY | COLI_DAY | COLI_WEE | COLI_MON | COLI_YEA |
+----------+----------+----------+----------+----------+
| 1 | 1 | NULL | 1 | NULL |
| 2 | NULL | NULL | 1 | 1 |
| 3 | 1 | 1 | 1 | 1 |
+----------+----------+----------+----------+----------+
Я хотел бы получить каждую строку для каждого значения в COLI_DAY, COLI_WEE, COLI_MON, COLI_YEA.Поэтому в основном мне нужен оператор SELECT
, который даст мне желаемый результат (в каждой строке отмечен только один столбец, остальные столбцы - нулевые):
+----------+----------+----------+----------+----------+
| COLI_KEY | COLI_DAY | COLI_WEE | COLI_MON | COLI_YEA |
+----------+----------+----------+----------+----------+
| 1 | 1 | null | null | null |
| 1 | null | null | 1 | null |
| 2 | null | null | 1 | null |
| 2 | null | null | null | 1 |
| 3 | 1 | null | null | null |
| 3 | null | 1 | null | null |
| 3 | null | null | 1 | null |
| 3 | null | null | null | 1 |
+----------+----------+----------+----------+----------+
Скрипт для создания таблицы:
declare @CACOLI table
(
COLI_KEY INT,
COLI_DAY CHAR(1),
COLI_WEE CHAR(1),
COLI_MON CHAR(1),
COLI_YEA CHAR(1)
)
INSERT INTO @CACOLI (COLI_KEY, COLI_DAY, COLI_WEE, COLI_MON, COLI_YEA)
VALUES (1, '1', NULL, '1', NULL),
(2, NULL, NULL, '1', '1'),
(3, '1', '1', '1', '1')