易截截图软件、单文件、免安装、纯绿色、仅160KB

sql的几个排序函数

1用于排序的函数
row_number()
rank()
dense_rank()
ntile(group_number)
下面列举这个函数的用法:
row_number()函数一般用于组内排序,而其他三个函数是对结果集排序
例子:分页排序
<!--注意全局变量也在这里声明,并用逗号隔开-->
create proc MyDividePageSort @iRowCount int ,@iPageNo int
AS
<!--局部变量在这里声明,并要采用关键字-->
declare @iMax int,@strSql nvarchar(100)
<!-并在这里赋值给相应的变量,因为是局部变量,所以必须赋值,但是全局变量的话,可以手动赋值,语句之间不用分隔号,但是独立的执行语句就必须采用go->
set @iMax = @iPageNo * iRowCount
set @strSql = '
select * from (select top('+convert(nvarchar(10),@iRowCount)+' * from 
( select top '+convert(nvarchar(10),@iMax)+' row_number() over(order by id asc) rownumber, * form [pc.pt ]order by id asc ) pcmax order by id desc )pcmin order by id asc    ) '
<!--执行-->
exec(@strSql)
go
这个是2000的过程,从中我们必须可以清楚了解几点:
1果一个变量被申明为string(nvarchar()),那么如果要该可变的unicode字符串里面的变量成功被赋值的话就必须使用:‘++‘
2还要改变该变量的类型convert(nvarchar(10),@iMax),如果这里直接采用'+@iMax+'会报select top (' 转换成数据类型 int 时失败')
这里为什么要用convert:因为如果直接用@IMax的话,相当于将变量@IMax转换成整数,在程序里面我们可以这样写
select top “+varivant+"* from table;
下面是2005的分页动作
create proc mydividePages @iRowcount  int ,@iPageNo int
AS
select * from (select row_number() over(order by id asc )  row,* from sp ) orderdata where row between @ipageNo * @iRowCoount +1 and (@ipageNo +1) * iRowCount;
这里的意思就是:从指定起始的row表中select出结果集来
需要注意的一点就是orderdata,这里必须要别名,因为sql里面只有特殊的函数才允许将2个执行语句放在一起,比如exists,有比如in,加上别名的意思就是相当于一个临时表,这里有不得不提一下CTE查询
with tempCte
{
    one statement can run off its own bat(independently);
}
next ,we can use the tempCte
在做分页测试的时候,我遇到了一个很容易忽略


相关文档:

SQL操作全集

下列语句部分是Mssql语句,不可以在access中使用。
SQL分类: 
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) 
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) 
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CR ......

SQL语句坚行转横列的一种方法

库位  货物编号 库存数
1     0101     50
1     0102     60
1     0103     50
2     0101     90
2     0103     100
2     0111     30
3     0101     12 ......

谈SQL Server 2005中的T SQL增强E


新的关系运算符 PIVOT/UNPIVOT/APPLY
1、PIVOT
PIVOT运算符将行旋转为列,并且可能同时执行聚合。使用PIVOT运算符时要注意的重要一点是,需要为它提供一个查询表达式,表达式使用视图、派生表或者是CTE只返回所关注的列。
2、UNPIVOT
UNPIVOT运算符执行与PIVOT运算符相反的操作;他将列旋转为行了。
3、APPLY ......

完全卸载SQL Server 2005

 
1.需要一种下载卸载工具,这里选择微软官方提供的工具(msicuu2.exe)
http://support.microsoft.com/default.aspx?kbid=290301
 
2.使用卸载工具卸载所有SQL Server服务和相关组件(注意:卸载前要先停止对应的服务,否则可能卸载失败)
 
3.删除C:\WINDOWS\inf 下所用文件(我是在该文件夹下搜索&ldquo ......

SQL查询语句精华使用简要

一、 简单查询
简单的Transact-SQL查询只包括选择列表、from子句和WHERE子句。它们分别说明所查询列、查询的
表或视图、以及搜索条件等。
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。
SELECT nickname,email
from testtable
WHERE name='张三'
(一) 选择列表
选择列表 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号