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.查詢外部數(shù)據(jù)庫
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.在查詢中指定排序規(guī)則
Select?*?From?Table1?Order?By?Field1?COLLATE?Chinese_PRC_BIN
為什么要指定排序規(guī)則呢?參見:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1633985例,檢查數(shù)據(jù)庫中的Pub_Users表中是否存在指定的用戶:
Select?Count(*)?From?Pub_Users?Where?[UserName]='admin'?And?[PassWord]='aaa'?COLLATE?Chinese_PRC_BIN
默認比較是不區(qū)分大小寫的,如果不加COLLATE?Chinese_PRC_BIN,那么密碼aaa與AAA是等效的,這當然與實際不符.注意的是,每個條件都要指定排序規(guī)則,上例中用戶名就不區(qū)分大小寫.
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
?