程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 創意SQL語句(2)

創意SQL語句(2)

編輯:關於SqlServer

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

 

2 ? Microsoft SQL Server 2005 Product Guide
2007-04-22T11:13:05+08:00 | rxl

推薦給學生閱讀的文章,較為詳細的說明了Microsoft SQL Server 2005方方面面,具有很好的學習價值,對於了解和學習Microsoft SQL Server 2005有很好的借鑒意義。

前期提供給盛浩峰和張飛進行閱讀,希望他們拿出一份翻譯稿件來,但是一直沒有收到成效。但是他們做了一些標注,還是直接借鑒的,盡管沒有看完。

盛浩峰閱讀批示後的文章

張飛閱讀批示後的文章


3 ? SQL Server 中【農歷】計算方法
2007-02-02T08:00:00+08:00 | rxl

最近幾天,一時興起,開始研究農歷,趁著元旦放假,把它給做出來了!拿給大家看看,我自己測試覺得沒有問題,請大家看看!

1、建一表,放初始化資料
因為農歷的日期,是由天文學家推算出來的,到現在只有到2049年的,

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved