易截截图软件、单文件、免安装、纯绿色、仅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 数据库链接服务器总结


SQL SERVER 数据库链接服务器总结
前段时间,公司的项目开发用到C/S、B/S两种架构。CS部分因为数据的保密性和安全性,采用SQL SERVER 2000(后来随着软件版本升级,采用SQL Server 2005)局域网络。B/S部分采用Oracle9.2数据库。两个部分物理隔离,定时通过网络切换器进行网络切换以完成数据交换。
    ......

PL/SQL 取得删除纪录的条数

怎样统计PLSQL语言中删除语句执行之后一共删除了多少条纪录。
Oracle使用两种光标:显式光标和隐式光标。不管语句返回多少条纪录,PL/SQL为使用的每一条UPDATE、DELETE和INSERT等SQL命令隐式的声明一个光标。(要管理SQL语句的处理,必须隐式的给它定义一个光标。)
在PL/SQL中,当执行DML语句的时候,会自动打开一个隐式 ......

sql server 2008 bcp 批量复制程序 出错 解决

sql server 2008 bcp 批量复制程序 出错
C:\Documents and Settings>bcp MSPetShop4.dbo.product out c:\1.txt -T
SQLState = 08001, NativeError = -1
Error = [Microsoft][SQL Native Client]SQL 网络接口: 定位指定的 Server/Instance
时出错 [xFFFFFFFF].
SQLState = HYT00, NativeError = 0
Error = [Micros ......

SQL查询语句精华使用简要

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