Мне нужно взять некоторые результаты запроса и выровнять их для отчета.
DECLARE @randomTable table (ID int, OtherID int, Val varchar(max))
insert into @randomTable(ID, OtherID, Val)
values (1, 100, 'Some Value 1'), (2, 100, 'Some Other 2'),
(3, 100, 'Some Value 3'), (4, 200, 'Some Other 4'),
(5, 200, 'Some Value 5'), (6, 300, 'Some Other 6'),
(7, 300, 'Some Value 7'), (8, 300, 'Some Other 8'),
(9, 400, 'Some Value 9'), (10, 500, 'Some Other 10')
select OtherID, Val from @randomTable
Результаты:
-- 100 | Some Value 1
-- 100 | Some Other 2
-- 100 | Some Value 3
-- 200 | Some Other 4
-- 200 | Some Value 5
-- 300 | Some Other 6
-- 300 | Some Value 7
-- 300 | Some Other 8
-- 400 | Some Value 9
-- 500 | Some Other 10
Есть ли способ SQL изменить это, чтобы выбрать как:
-- 100 | Some Value 1 | Some Other 2 | Some Value 3
-- 200 | Some Other 4 | Some Value 5
-- 300 | Some Other 6 | Some Value 7 | Some Other 8
-- 400 | Some Value 9
-- 500 | Some Other 10
ПРИМЕЧАНИЕ. Выше приведен пример. Мои реальные данные не являются статичными. Кроме того, в моих реальных данных OtherID
- это строковое значение, а Val
- это изображения, хранящиеся в виде varbinary.
Конечно, мне нужно ограничить количество столбцов, которые я собираюсь разрешить. Я думаю, максимум 5 (после этого я могу потерять лишние строки).
Есть ли способ сделать это?