Рейтинг:
20
Maciej Los
Оригинал Грифф прав!
Вы должны использовать unpivot + pivot ;)
Видеть:
DECLARE @tmp TABLE(id INT IDENTITY(1,1), [First Name] NVARCHAR(30), [Middle Name] NVARCHAR(30), [Last Name] NVARCHAR(30), City NVARCHAR(30))
INSERT INTO @tmp ([First Name], [Middle Name], [Last Name], City)
VALUES('A1', 'B1', 'C1', 'D1'),
('A2', 'B2', 'C2', 'D2')
SELECT Headers AS Id, [1], [2]
FROM (
SELECT id, Headers, Data
FROM (
SELECT *
FROM @tmp
) AS src1
UNPIVOT(Data FOR Headers IN([First Name], [Middle Name], [Last Name], City)) AS unpvt
) AS src2
PIVOT(MAX(Data) FOR id IN([1], [2])) AS pvt2
Результат:
Id 1 2
City D1 D2
First Name A1 A2
Last Name C1 C2
Middle Name B1 B2
Удачи вам!
0x01AA
Привет Мацей
Не могли бы вы намекнуть, почему бы и нет? По крайней мере, для Q версии 3 Мне кажется, что это простой Pivot? Чего мне не хватает?
Спасибо, Бруно
*lol* это был комментарий, который я дал вашему комментарию в решении ppolymorphe, и теперь он появляется здесь ... странно
Maciej Los
Бруно,
Как можно короче...
Вам нужно "преобразовать" набор столбцов в строки для каждого идентификатора (unpivot):
id Headers Data
1 First Name A1
1 Middle Name B1
1 Last Name C1
1 City D1
2 First Name A2
2 Middle Name B2
2 Last Name C2
2 City D2
затем переходим к конечному результату (pivot).
Если вы можете использовать только один стержень, я хотел бы его увидеть.
Овации,
Мацей
0x01AA
Ладно, я не знаком с Pivot, никогда им не пользовался. Я думал, что до сих пор это просто что - то вроде транспонирования матрицы. Теперь юрист SQL (вы) говорит мне что-то вроде: "это не только транспонирование". Вывод: мне нужно прочитать об этом более внимательно.
Спасибо, Бруно
И еще 5
Maciej Los
Моей первой мыслью было тоже использовать single pivot... потом я понял, что сначала мне нужно преобразовать набор столбцов в строки. (см. обновленный предыдущий комментарий)
Спасибо, Бруно.
Ваше здоровье!
Мацей
Member 8782777
Большое вам спасибо, Мацей Лос. Это сработало для меня.
Все столбцы должны иметь один и тот же тип данных. В противном случае он вернет ошибку "тип столбца "@column_name" конфликтует с типом других столбцов, указанных в списке UNPIVOT."
Maciej Los
Всегда пожалуйста.