摘要: 概括: 这里说的聚集索引是聚簇索引 聚簇索引即建立在聚簇上的索引,创建聚簇索引时,需要对已有表数据重新进行排序(若表中已有数据),即删除原始的表数据后再将排序结果按物理顺序插回,故聚簇索引建立完毕后,建立聚簇索引的列中的数据已经全部按序排列。 一个表中只能包含一个聚簇索引,但该索引可以包含多个列。 B-树索引中,聚簇索引的叶层就是数据页。 非聚簇索引类似书本索引,索引与数据存放在不同的物理区域,建立非聚簇索引时数据本身不进行排序。一个表中科含多个非聚簇索引。 B-树索引中,非聚簇索引的叶层仍是索引页,其以指针指向数据页实际存储位置。详解,列子:非聚集索引与聚集索引具有相同的 B 树结构,它们之 阅读全文
posted @ 2012-02-16 11:05 scott.pei 阅读(1674) 评论(0) 推荐(0)
摘要: 使用 PIVOT 和 UNPIVOTSQL Server 2008 R2 其他版本 SQL Server 2008 SQL Server 2005 13(共 15)对本文的评价是有帮助 评价此主题 可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值。注意对升级到 SQL Server 2005 或更高版本的数据库使用 PIVOT 和 UNPIVOT 时,必须将数据. 阅读全文
posted @ 2012-02-16 10:44 scott.pei 阅读(3723) 评论(0) 推荐(1)
摘要: 今天看到一个老兄的问题, 大概如下: 查询出部门的最低工资的userid 号 表结构: D号 工资 部门 userid salary dept 1 2000 1 2 1000 1 3 500 2 4 1000 2 有一个高人给出了一种答案: SELECT MIN (salary) OVER (PARTITION BY dept ) salary, dept FROM ss 运行后得到: 1000 1 1000 1 500 2 500 2 楼主那位老兄一看觉得很高深。大叹真是高人阿~ 我也觉得这位老兄实在是高啊。 但我仔细研究一下发现那位老兄对PARTITION BY的用法理解并不深刻。并没有解 阅读全文
posted @ 2012-02-16 10:38 scott.pei 阅读(71641) 评论(10) 推荐(12)