易截截图软件、单文件、免安装、纯绿色、仅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 Server 2005中的T SQL增强B

SQL2005中row_number( )、rank( )、dense_rank( )、ntile( )函数的用法(2) 收藏
   SQL server 2005新增的几个函数,分别是row_number( )、rank( )、,DENSE_RANK( )、ntile( )下面以实例分别简单讲解。
1.row_number( )
         先来点数据,先建个表
SET NOCOUNT ......

sql project dll deploy

To generate a deployment script using generate scripts

Open
Management Studio and connect to the SQL Server instance where the
managed assembly or database object to be deployed is registered.
In the Object Explorer
, expand the <server name>
and Databases
trees. Right-click ......

PL/SQL的数据类型和常用函数

1)PL/SQL数据类型
名称
类型
说明
NUMBER
数字型
能存放整数值和实数值,并且可以定义精度和取值范围
BINARY_INTEGER
数字型
可存储带符号整数,为整数计算优化性能
DEC
数字型
NUMBER的子类型,小数
DOUBLE PRECISION
数字型
NUMBER的子类型,高精度实数
INTEGER
数字型
NUMBER的子类型,整数
INT
数 ......

SQL行列的转换

/*
标题:普通行列转换(version 2.0)
作者:爱新觉罗.毓华
时间:2008-03-09
地点:广东深圳
说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法。
问题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号