Для фиксированного coloumn просто набор height:xxxpx заставит их равняться.
Использование это генератор расположения на 3 столбца для попытки.
Вы можете использовать агрегат MAX, он все равно будет работать. Максимум одного значения = это значение ..
В этом случае вы также можете 5 раз самостоятельно присоединиться к Customerid, фильтруя по dbColumnName по ссылке на таблицу. Это может сработать лучше.
SELECT
main.CustomerID,
f.Data AS FirstName,
m.Data AS MiddleName,
l.Data AS LastName,
d.Data AS Date
FROM table main
INNER JOIN table f on f.CustomerID = main.CustomerID
INNER JOIN table m on m.CustomerID = main.CustomerID
INNER JOIN table l on l.CustomerID = main.CustomerID
INNER JOIN table d on d.CustomerID = main.CustomerID
WHERE f.DBColumnName = 'FirstName'
AND m.DBColumnName = 'MiddleName'
AND l.DBColumnName = 'LastName'
AND d.DBColumnName = 'Date'
Изменить: я написал это без редактора и не запускал SQL. Надеюсь, вы уловили идею.
Хорошо, извините за плохой вопрос. gbn направил меня на верный путь. Это то, что я искал в ответе.
SELECT [FirstName], [MiddleName], [LastName], [Date]
FROM #temp
PIVOT
( MIN([Data])
FOR [DBColumnName] IN ([FirstName], [MiddleName], [LastName], [Date])
)AS p
Затем мне пришлось использовать оператор while, построить приведенный выше оператор как varchar и использовать dynmaic sql.
Использование чего-то вроде этого
SET @fullsql = @fullsql + 'SELECT ' + REPLACE(REPLACE(@fulltext,'(',''),')','')
SET @fullsql = @fullsql + 'FROM #temp '
SET @fullsql = @fullsql + 'PIVOT'
SET @fullsql = @fullsql + '('
SET @fullsql = @fullsql + ' MIN([Data])'
SET @fullsql = @fullsql + ' FOR [DBColumnName] IN '+@fulltext
SET @fullsql = @fullsql + ')'
SET @fullsql = @fullsql + 'AS p'
EXEC (@fullsql)
Создание @fulltext с помощью цикла while и выбор отдельных имен столбцов из таблицы. Спасибо за ответы.
да, но почему !! ??
Select CustomerID,
Min(Case DBColumnName When 'FirstName' Then Data End) FirstName,
Min(Case DBColumnName When 'MiddleName' Then Data End) MiddleName,
Min(Case DBColumnName When 'LastName' Then Data End) LastName,
Min(Case DBColumnName When 'Date' Then Data End) Date
From table
Group By CustomerId