您现在的位置: 电子商务模式 >> 电子商务技术 >> 数据 >> [EB技术]正文  显示方式: 

SQLServer一些小技巧 - bestshl的文章
http://tech.caneb.com/ 时间:2006-12-29 9:21:34 点击数:   电子商务模式[技术]频道 

今日不可不关注的电子商务技术资讯:

【文章简介】 1.把某个字段重新生气序列(从1到n):DECLARE@iintSet@i=0UpdateTable1Set@i=@i+1,Field1=@i2.按成绩排名次Update成绩表Seta.名次=(SelectCount(*)+1From成绩表bWherea.总成绩<b.总成绩)From成绩表a3.查询外部数据库Selecta.*FromOpenRowSet(Microsoft.Jet.OL

【文章正文】

 1.把某个字段重新生气序列(从1到n):
DECLARE @i int
Set @i = 0
Update Table1 Set @i = @i + 1,Field1 = @i

2.按成绩排名次
Update 成绩表
Set a.名次 = (
Select Count(*) + 1
From 成绩表 b
Where a.总成绩 < b.总成绩
)
From 成绩表 a

3.查询外部数据库
Select a.*
From OpenRowSet('Microsoft.Jet.OLEDB.4.0','c:\test.mdb';'admin';'',Table1) a

4.查询Excel文件
Select *
From OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...Sheet1$

5.在查询中指定排序规则
Select * From Table1 Order By Field1 COLLATE Chinese_PRC_BIN
为什么要指定排序规则呢?参见:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1633985
例,检查数据库中的Pub_Users表中是否存在指定的用户:
Select Count(*) From Pub_Users Where [UserName]='admin' And [PassWord]='aaa' COLLATE Chinese_PRC_BIN
默认比较是不区分大小写的,如果不加COLLATE Chinese_PRC_BIN,那么密码aaa与AAA是等效的,这当然与实际不符.注意的是,每个条件都要指定排序规则,上例中用户名就不区分大小写.


6.Order By的一个小技巧
Order By可以指定列序而不用指定列名,在下面的例子里说明它的用处(注意,第三列未指定别名)
Select a.ID,a.Name,(Select Count(*) From TableB b Where a.ID=b.PID) From TableA a Order By 3




关键词:数据库
阅读本站更多关于:“SQLServer一些小技巧 - bestshl的文章”的文章>>>>
作者:bestshl的… 文章来源:CSDN
[EB技术]录入:北极星    责任编辑:北极星 

  窄告信息
电子商务辩论台
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
电子商务模式网站(www.CanEb.com)版权与免责声明:
① 本网转载其他媒体、网站文章是为传播更多的信息,此类文章不代表本网观点,也不对其真实性负责,本网不承担此类文章侵权行为的连带责任。
② 在本网论坛(BBS)博客(Blog)网络硬盘(WebDisk)上发表言论或上传、收藏文件者,责任自负。
③ 如您因版权等问题需要与本网联络,请在30日内联系 caneb_com@yahoo.com.cn
④ 凡本网原创文章(包括论坛、博客等),欢迎转载,但务必注明来自本网,且需注明引用网址。
焦点图片
今日博客
电子商务模式网站意见反馈留言板