All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
GridView实用示例源码(可以导出Excel)_[Asp.Net教程]
c#的DateTime.Now函数详解_[Asp.Net教程]
Windows,Vista下安装SQL,Server,2005_mssql学习_编程技术
visual c++ MFC运行时类型识别宏
WEB开发者需要了解的IE7的新功能_[Html教程]
.net控件开发(六)之深究控件样式_[Asp.Net教程]
单点登录在ASP.NET上的简单实现_[Asp.Net教程]
50个常用sql语句_mssql学习_编程技术
Linux脚本开发数学库在PHP中的重要性_php资料_编程技术
PHP的print函数_[PHP教程]
Reading number is top 10 pictures
India's national beauty of the college students
NeedWallpaper13
Cesarean section, bloody, silently into it!2
Sexy women in 2013--2
The terra-cotta warriors3
这年头,找个靠谱的妹子太难了
小学生作文又现神作,你不得不佩服
A man's favorite things16
中国女孩大胆自拍,显露完美身材2
牛奶和人奶哪个好?
Download software ranking
Tram sex maniac 2 (H) rar bag13
株洲本地在线棋牌游戏
Tram sex maniac 2 (H) rar bag9
Boxer's Top ten classic battle3
星际争霸1.08硬盘免安装版
White deer villiage
I for your crazy
Photoshop 8.0图象编辑软件
Ashlynn Video5
实战黑客不求人
归海一刀 published in(发表于) 2014/2/3 6:43:53 Edit(编辑)
如何在SQL Server中对行进行动态编号_[SQL Server教程]

如何在SQL Server中对行进行动态编号_[SQL Server教程]

如何在SQL Server中对行进行动态编号_[SQL Server教程]

如何在SQL中对行进行动态编号,加行号这个问题,在数据库查询中,是经典的问题。我把现在的方法整理一下,分享一下技巧吧。代码基于pubs样板数据库。在SQL中,一般就这两种方法:


1.使用临时表


可以使用select into 创建临时表,在第一列,加入Identify(int,1,1)作为行号,这样在产生的临时表中,结果集就有了行号.也是目前效率最高的方法。这种方法不能用于视图


代码:



set nocount on
select IDentify(int,1,1) 'RowOrder',au_lname,au_fname into #tmp
from authors
select * frm #tmp
drop table #tmp



2.使用自连接


不用临时表,在SQL语句中,动态的进行排序.这种方法用到的连接是自连接,连接关系一般是大于。


代码:



select rank=count(*), a1.au_lname, a1.au_fname
from authors a1 inner
join authors a2 on a1.au_lname + a1.au_fname >= a2.au_lname + a2.au_fname
group by a1.au_lname, a1.au_fname
order by count(*)



运行结果:


rank
au_lname
au_fname
1
Bennet
Abraham
2
Blotchet-Halls
Reginald
3
Carson
Cheryl
4
DeFrance
Michel
5
del Castillo
Innes
6
Dull
Ann
7
Greene
Morningstar
...
...
...


缺点:


1.使用自联接,所以该方法不适用于处理大量行。它适用于处理几百行。对于大型表,一定要使用索引以避免进行大范围的搜索,或用第一种方法.


2.不能正常处理重复值。当比较重复值时,会出现不连续的行编号。如果不希望出现这种现象,可以在电子表格中插入结果时隐藏排序列,而是使用电子表格编号,或用第一种方法


优点:


1.这些查询可以用于视图和结果格式设置中


在结果集中插入了行号,现在就可以将结果集合缓存起来,然后使用DataView,加入过滤条件



RowNum>PageIndex*PageSize And RowNum<=(PageIndex+1)*PageSize



就能实现快速的分页,而且不论你的页面数据绑定控件是什么(DataList,DataGrid,还是Repeate都可以)。如果你使用的是DataGrid,那么建议不要使用这种技术。因为DataGrid的分页效率和它差不多。


来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.