CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

数据库 | Oracle | DB2 | SQL Server | MySQL | 商业智能 | BI | DBA | Sybase| SQL Server 2008

您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

SSIS的透视(Pivot)和逆透视(UnPivot)

作者: 戴羽,  出处:IT专家网, 责任编辑: 李书琴, 
2008-01-18 17:34
  透视和逆透视转换是使你可以改进你的数据表达的重要控制。以最少的时间和知识,你可以成功地改变你的数据表达。

  【IT专家网独家】导言

  数据的表现形式要求能够易于分析。将列转成行而行转成列是数据表现的另一种方式,以便终端用户可以很容易地理解。除了表现目的,你还需要将你在数据仓库应用程序之中的数据转换成不同的数据格式。这个过程可以称之为‘透视(Pivot)’,而这个过程的反向则称之为‘逆透视(Unpivot)’。

  在这篇文章里,我们将讨论你在SQL Server集成服务(SSIS)中可以怎样使用透视和逆透视处理。

  必要条件

  因为这篇文章将告诉你怎样编写SSIS包,所以你需要具有一定的创建SSIS包的经验。不过我将努力讨论创建SSIS包的细节,无论其是否必要,但是并不打乱这篇文章的主题。此外,有必要知道怎样编写一个连接三个或更多表的查询。

  软件要求安装SQL Server 2005和SQL Server 2005商业智能开发套件。这篇文章假设你在使用Adventureworks 数据库的数据。所以读者最好和SQL Server 2005数据库服务器一起安装了Adventureworks 数据库。

  这个练习使用的数据文档可以从这里找到。

  透视

  要理解什么是透视,让我们看一个例子。下面显示了Advenureworks 数据库中Sales.SalesOrderHeader、Sales.SalesOrderOrder、Prodcution.Product和Production.ProductCategory表的关系。

表的关系

  从上面的关系图中,我们可以假设我们需要下面的输出。

 

产品

Qrt1

Qtr2

Qrt3

Qrt4

Accessories

 

 

870

411

Bikes

1167

1369

2844

2495

Components

2641

2966

6173

5253

  我们知道,你不可能通过一个简单的T-SQL查询获得上面的数据集合。不过我们可以使用一个简单的T-SQL代码定义下面的格式。

Name

Qtr

OrderQty

Accessories

3

870

Accessories

4

411

Bikes

1

1167

Bikes

2

1369

Bikes

3

2844

Bikes

4

2495

Components

1

2641

Components

2

2966

Components

3

6173

Components

4

5253

共9页。 1 2 3 4 5 6 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2007, ChinaByte
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i