Я хочу разделить 2 столбца на 4 на четных и нечетных. У меня есть таблица
INSERT INTO @tab
VALUES ('test', 'desc'), ('test1', 'desc1'), ('test2', 'desc2'),
('test3', 'desc3'), ('test4', 'desc4')
Я пробовал следующий запрос: -
SELECT
CASE
WHEN A.RNK % 2 = 1
THEN Heading
END AS Headingodds,
CASE
WHEN A.RNK % 2 = 0
THEN Heading
END AS Headingeven,
CASE
WHEN A.RNK % 2 = 1
THEN A.[Description]
END AS Descriptionodds,
CASE
WHEN A.RNK % 2 = 0
THEN A.[Description]
END AS Descriptioneven
FROM
(SELECT
Id, Heading, [Description],
ROW_NUMBER() OVER (ORDER BY Id) AS RNK
FROM
@tab) A
Результаты, которые я получаю по запросу: -
![enter image description here](https://i.stack.imgur.com/MJH5G.png)
Но я хочу получить результат в следующем формате: -
DECLARE @tab1 TABLE(Headingodd VARCHAR(100), Headingeven VARCHAR(100), Descriptionodd VARCHAR(100), Descriptioneven VARCHAR(100))
INSERT INTO @tab1
VALUES ('test', 'test1', 'desc', 'desc1'),
('test2', 'test3', 'desc2', 'desc3'),
('test4', null, 'desc4', null)
SELECT * FROM @tab1