2013-03-22 2 views
0

Здесь структура таблицы, и выборки данныхSQL: Как преобразовать строки в столбце в TSQL

create table #tmp (Id int, Name varchar(100)) 
insert into #tmp (Id,Name) 
Values (1,'Add') 
insert into #tmp (Id,Name) 
Values (2,'Update') 

insert into #tmp (Id,Name) 
Values (3,'Delete') 

и ожидаемый результат должен быть.

Add Update Delete 
=== ====== ====== 
1 2  3 
+6

Разделяя Ваше исследование помогает всем. Расскажите, что вы пробовали и почему это не соответствовало вашим потребностям. Это демонстрирует, что вы потратили время, чтобы попытаться помочь себе, это избавляет нас от повторения очевидных ответов и, прежде всего, помогает вам получить более конкретный и релевантный ответ! –

ответ

2

Существует несколько способов преобразования данных из строк в столбцы.

Если база данных имеет PIVOT функцию, то вы можете использовать следующий код для поворота данных:

select [Add], [Update], [Delete] 
from 
(
    select id, name 
    from #tmp 
) src 
pivot 
(
    max(id) 
    for name in ([Add], [Update], [Delete]) 
) piv 

SQL Fiddle with Demo См.

Или вы могли бы использовать агрегатную функцию с выражением CASE:

select 
    max(case when name = 'Add' then id end) [Add], 
    max(case when name = 'Update' then id end) [Update], 
    max(case when name = 'Delete' then id end) [Delete] 
from #tmp 

См SQL Fiddle with Demo

2

Пожалуйста, попробуйте:

SELECT [Add], [Update], [Delete] 
    FROM (select * from #tmp) up 
     PIVOT (sum(id) FOR Name IN ([Add], [Update], [Delete])) AS pvt 
Смежные вопросы