PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值。

 

1、PIVOT 使用实例

先建立一个临时表做为例表:

 1 create table #PIVOT (id int,name varchar(50),[subject] varchar(50),val decimal(18,2))
 2 
 3 INSERT INTO #PIVOT VALUES (1,'张三','语文',54.12);
 4 INSERT INTO #PIVOT VALUES (2,'张三','数学',25.3);
 5 INSERT INTO #PIVOT VALUES (3,'张三','外语',69);
 6 INSERT INTO #PIVOT VALUES (4,'张三','物理',15.23);
 7 INSERT INTO #PIVOT VALUES (5,'张三','化学',15.02);
 8 
 9 INSERT INTO #PIVOT VALUES (6,'李四','语文',54.12);
10 INSERT INTO #PIVOT VALUES (7,'李四','数学',25.3);
11 INSERT INTO #PIVOT VALUES (8,'李四','外语',69);
12 INSERT INTO #PIVOT VALUES (9,'李四','物理',15.23);
13 INSERT INTO #PIVOT VALUES (10,'李四','化学',15.02);

表的内容:

使用PIVOT 语句

 

1 select    [subject],[张三],[李四] from (
2 select [subject],name,val from #PIVOT
3 as p1
4 pivot (max(val)  for name in ([张三],[李四])) as p2
5 order by p2.[subject]

运行结果:

 

2、UNPIVOT实例

建立一个临时表结构:

1 CREATE TABLE #pvt (VendorID int, Emp1 int, Emp2 int,
2     Emp3 int, Emp4 int, Emp5 int);
3 
4 INSERT INTO #pvt VALUES (1,4,3,5,4,4);
5 INSERT INTO #pvt VALUES (2,4,1,5,5,5);
6 INSERT INTO #pvt VALUES (3,4,3,5,4,4);
7 INSERT INTO #pvt VALUES (4,4,2,5,5,4);
8 INSERT INTO #pvt VALUES (5,5,1,5,5,5);

表内容:

UNPIVOT语句:

1 SELECT VendorID, Employee, Orders
2 FROM 
3    (SELECT VendorID, Emp1, Emp2, Emp3, Emp4, Emp5
4    FROM #pvt) p
5 UNPIVOT
6    (Orders FOR Employee IN 
7       (Emp1, Emp2, Emp3, Emp4, Emp5)
8 )AS ss;

运行结果:

 

 

 

posted @ 2011-04-13 11:05 阿 飞 阅读(59) 评论(0) 编辑

在JavaScript中存在这样两种原始类型:Null与Undefined。这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined?

Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

js 代码
  1. var oValue;     
  2. alert(oValue == undefined); //output "true"    
这段代码显示为true,代表oVlaue的值即为undefined,因为我们没有初始化它。
js 代码
 
  1. alert(null == document.getElementById('notExistElement'));     
当页面上不存在id为"notExistElement"的DOM节点时,这段代码显示为"true",因为我们尝试获取一个不存在的对象。
js 代码
  1. alert(typeof undefined); //output "undefined"     
  2. alert(typeof null); //output "object"     
第一行代码很容易理解,undefined的类型为Undefined;第二行代码却让人疑惑,为什么null的类型又是Object了呢?其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来。在今天我们可以解释为,null即是一个不存在的对象的占位符,但是在实际编码时还是要注意这一特性。
js 代码
  1. alert(null == undefined); //output "true"  
ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。但是,如果在一些情况下,我们一定要区分这两个值,那应该怎么办呢?可以使用下面的两种方法。
js 代码
  1. alert(null === undefined); //output "false"     
  2. alert(typeof null == typeof undefined); //output "false"   
使用typeof方法在前面已经讲过,null与undefined的类型是不一样的,所以输出"false"。而===代表绝对等于,在这里null === undefined输出false
posted @ 2011-03-02 15:31 阿 飞 阅读(85) 评论(0) 编辑

前言:JQuery用了好一段时间了,一直对$(document).ready()和window.onload的区别有点模糊,最近有时间就在网上查了查子类,做了个小例子;

网上给的解释比较通俗易懂:

Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的。

1.执行时间 

window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。 
$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。 

2.编写个数不同 

window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 
$(document).ready()可以同时编写多个,并且都可以得到执行 

3.简化写法 

window.onload没有简化写法 
$(document).ready(function(){})可以简写成$(function(){});


下面是个测试例子:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>测试JQuery</title>
    
<script src="../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    
<script type="text/javascript">
        window.onload 
= function () {
            
var str = document.getElementById("lbtestJs").innerHTML + "<br />这个是Window.onload方法;";
            document.getElementById(
"lbtestJs").innerHTML = str;
        };

        $(
function () {
            $(
"#lbtestJs").html($("#lbtestJs").html() + "<br /> 这个是JQuery的$(document).ready();");
        });
    
</script>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
    测试JQuery和JavaScript:
<br />
    
<label id="lbtestJs">sss</label>
    
</div>    
    
</form>
</body>

</html> 

结果

测试JQuery和JavaScript:

这个是Window.onload方法; 

posted @ 2011-03-02 15:28 阿 飞 阅读(381) 评论(0) 编辑
SQL语句:
Select * From (Select (ROW_NUMBER() OVER(ORDER BY ID asc)) AS rownum,* From [TABLENAME]) t
Where rownum BETWEEN 1 AND 20 

说明:这个是显示前20条记录,
rownum:是显示行数的列;
ID:表TABLENAME的排序字段
posted @ 2009-10-09 13:47 阿 飞 阅读(122) 评论(0) 编辑