1

私のデータは次のようになります

Viral Impressions   Paid Impressions    Organic Impressions
123                   5678                          34566

この形でお願いしたいです。

         Impressions
Viral        123
Paid         5678
Organic       34566

Pivot unpivot を使用して SSIS でそれを行うにはどうすればよいですか

4

2 に答える 2

1

UNPIVOT の代わりに、UNION ALL を使用できます。

 Select 'viral' as col, [viral impressions] as impressions
 From yourtable
 Union all
 Select 'paid' as col, [paid impressions] as impressions
 From yourtable
 Union all
 Select 'organic' as col, [organic impressions] as impressions
 From yourtable

デモで SQL Fiddle を参照してください

結果は次のとおりです。

|     COL | IMPRESSIONS |
-------------------------
|   viral |         123 |
|    paid |        5678 |
| organic |       34566 |
于 2013-01-08T16:00:01.553 に答える
0

UNPIVOTテーブル演算子を使用:

SELECT 
  value, 
  Impressions
FROM TableName
UNPIVOT
(
  Impressions
  FOR value IN([Viral], 
               [Paids], 
               [Organic])
) u;

SQL フィドルのデモ

これは、列の名前が として保存されていることを前提としていますViral | Paid | Organic。これらの列の名前が次の場合、次のViral Impressions | Paid Impressions | Organic Impressionsことができます。

WITH CTE
AS
(
  SELECT value, Impressions
  FROM Table1
  UNPIVOT
  (
     Impressions
     FOR value IN([Viral Impressions], 
                  [Paid Impressions], 
                  [Organic Impressions])
  ) u
)
SELECT 
  REPLACE(value, ' Impressions', '') Value, 
  Impressions
FROM CTE;

更新された SQL Fiddle デモ

于 2013-01-08T15:12:58.723 に答える