- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Transact-SQL Cookbook
第一章 数据透视表
1.1 使用数据透视表
1.1.1 问题
支持一个元素序列往往需要解决各种问题。例如,给定一个日期范围,你可能希望产生一行在每个日期的范围。或者,您可能希望将一系列的返回值在单独的行成一系列单独的列值相同的行。实现这种功能,你可以使用一个永久表中存储一系列的顺序号码。这种表是称为一个数据透视表。
许多食谱书中使用数据透视表,然后,在所有情况下,表的名称是。这个食谱告诉你如何创建表。
1.1.2 解决方案
首先,创建数据透视表。下一步,创建一个表名为富,将帮助你在透视表:
CREATE TABLE Pivot (
i INT,
PRIMARY KEY(i)
)
CREATE TABLE Foo(
i CHAR(1)
)
富表是一个简单的支持表,你应插入以下10行:
INSERT INTO Foo VALUES(0)
INSERT INTO Foo VALUES(1)
INSERT INTO Foo VALUES(2)
INSERT INTO Foo VALUES(3)
INSERT INTO Foo VALUES(4)
INSERT INTO Foo VALUES(5)
INSERT INTO Foo VALUES(6)
INSERT INTO Foo VALUES(7)
INSERT INTO Foo VALUES(8)
INSERT INTO Foo VALUES(9)
利用10行在富表,你可以很容易地填充枢轴表1000行。得到1000行10行,加入富本身三倍,创建一个笛卡尔积:
INSERT INTO Pivot
SELECT f1.i+f2.i+f3.i
FROM Foo f1, Foo F2, Foo f3
如果你名单上的行数据透视表,你会看到它所需的数目的元素,他们将编号从0到999。
1.1.3讨论
你会看到食谱,跟随在这本书中,枢轴表通常是用来添加一个排序属性查询。某种形式的数据透视表中发现许多数据库为基础的系统,尽管它往往是隐藏的用户,主要用在预定义的查询和程序。
你已经看到一些表连接(的富表)控制的行数,我们插入语句生成的数据透视表。从0到999的值是通过连接生成的字符串。数字值,是字符串。因此,当加号(+)运算符用来串连,我们得到的结果如下:
0 + 0 + 0 = 000
0 + 0 + 1 = 001
这些结果是插入整数列在目的地的数据透视表。当你使用一个插入语句插入字符串到整数列的数据库,含蓄地转换成整数的字符串。笛卡尔积富情况下确保所有可能的组合生成,和,因此,所有可能的值从0到999的产生。
这是值得指出的,这个例子使用行从0999和负数。你可以很容易地产生负面的号码,如果需要,重复插入声明“-”符号前面的连接字符串,小心点大约0排。有没有这样的事,作为一个- 0,所以你不想将 000 行时产生的负轴数。如果你这样做,你最终会与0行的数据透视表。在我们的例子中,0行是不可能的,因为我们定义一个主键的透视表。
枢轴表可能是最有用的表中的世界。一旦你使用它,它几乎是不可能创造一个严重的应用没有它。作为一个示范,让我们用枢轴表生成一个图表迅速从32码到126:
SELECT i Ascii_Code, CHAR(i) Ascii_Char FROM Pivot
WHERE i BETWEEN 32 AND 126
Ascii_Code Ascii_Char
----------- ----------
32
33 !
34
35 #
36 $
37 %
38
39
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
...
如何更好的使用数据透视表在这个特定的例子是你产生行输出不具有同等数量的行输入。没有数据透视表,这是困难的,如果不是不可能的任务。简单的指定一个范围,然后选择枢轴行在该范围内,我们能够产生的数据,不存在任何数据库中的表。
作为另一个例子,数据透视表的有用性,我们可以很容易地使用它来生成一个日历的下一个七天:
SELECT
CONVERT(CHAR(10),DATEADD(d,i,CURRENT_TIMESTAMP), 121) date,
您可能关注的文档
- 铜合金热挤压模具设计及可靠性分析--毕业论文设计.doc
- 铜藻膳食纤维提取条件的优化的综述--毕业论文设计.doc
- 童装色彩与面料企划探究--毕业论文设计.doc
- 童装色彩与面料企划探究论文--毕业论文设计.doc
- 统筹城乡背景下的德州农民生活方式适应性调查研究--毕业论文设计.doc
- 头孢克肟的生产质量中控研究--毕业论文设计.doc
- 头孢他啶的合成探究--毕业论文设计.doc
- 头孢他啶无菌检测方法的研究--毕业论文设计.doc
- 投捞式液体驱动射流泵采油装置设计--毕业论文设计.doc
- 投资者群体差异与可转换债券折价—中国市场的实证分析--毕业论文设计.doc
- 外文翻译-最小化传感级别不确定性联合策略的机械手控制(适用于外文翻译+中英文对照)--毕业论文设计.doc
- 外文文献-如何监测内部控制--毕业论文设计.doc
- 外语教育论文和谐文化论文:外语教育理念与和谐文化建设--毕业论文设计.doc
- 外语学习论文外语课堂教学论文--毕业论文设计.doc
- 外语学习应重视文化差异--毕业论文设计.doc
- 外圆磨床设计--毕业论文设计.doc
- 外源ABA对盐胁迫下甜瓜幼苗生理的影响--毕业论文设计.doc
- 外周静脉溶栓治疗性肠系膜上静脉血栓形成9例分析--毕业论文设计.doc
- 外资并购的动因、趋势与监管--毕业论文设计.doc
- 外资并购的国家安全审查概念与实践--毕业论文设计.doc
文档评论(0)