У меня нет доступа к блоку SQL2K в данный момент, но выбор max (столбец) будет работать на nvarchars в 2005 году. Единственная проблема будет, если у вас есть несколько текстовых значений под каждым столбцом для каждого идентификатора в исходной таблице ...
CREATE TABLE Flatten (
id int not null,
foo Nvarchar(10) null,
bar Nvarchar(10) null,
red Nvarchar(10) null)
INSERT INTO Flatten (ID, foo, bar, red) VALUES (1, 'Text1', null, null)
INSERT INTO Flatten (ID, foo, bar, red) VALUES (1, null, 'Text2', null)
INSERT INTO Flatten (ID, foo, bar, red) VALUES (1, null, null, 'Text3')
INSERT INTO Flatten (ID, foo, bar, red) VALUES (2, 'Text4', null, null)
SELECT
ID,
max(foo),
max(bar),
max(red)
FROM
Flatten
GROUP BY ID
возвращает
ID Foo Bar Red
----------- ---------- ---------- ----------
1 Text1 Text2 Text3
2 Text4 NULL NULL