2015-08-23 2 views
0

У меня есть таблица следующимвыбора значений из нескольких записей в одной строке, но разные столбцы в SQL

Ident  type  id value 
    A   CP  1 1000 
    A   CP  2 EXIST 
    A   GVI  1 100 
    A   GVI  2 NOT EXIST 

Мне нужно, чтобы рассматривать их как следует

Ident type value(id=1) value(ld=2) 
    A  CP  1000   Exist 
    A  GVI 100   NOT EXIST 

Любая идея, как это сделать?

ответ

2

Использование Conditional Aggregate

select Ident, 
     type, 
     max(case when id=1 then value end) as [value(ld=1)], 
     max(case when id=2 then value end) as [value(ld=2)] 
from yourtable 
group by Ident,type 

или Вы также можете использовать оператор Pivot

SELECT ident, 
     type, 
     [1] AS [value(ld=1)], 
     [2] AS [value(ld=2)] 
FROM (SELECT * 
     FROM yourtable) A 
     PIVOT (Max(value) 
      FOR id IN ([1], 
         [2])) pv 
+0

Он работал, спасибо много –

Смежные вопросы