SQL一些小技巧

2021-04-30 00:33:04 字數 1169 閱讀 6370

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

為什麼要指定排序規則呢?參見:

例,檢查資料庫中的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

SQL一些小技巧

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.總成績 fro...

SQL查詢的一些小技巧

1.當使用and時,將很可能不為真的條件放在前面.因為資料庫系統從左到右計算條件,並遵守運算子的優先順序.如果乙個條件中存在兩個或多個and運算子,則左邊的乙個條件首先被計算.例子 1 select language 2from computer 3where comefrom usa and da...

一些小技巧

關注 乙個好的程式設計師不應該把所有的判斷交給編譯器和偵錯程式,應該在程式中自己加以程式保護和錯誤定位,具體措施包括 對於所有有返回值的函式,都應該檢查返回值,除非你確信這個函式呼叫絕對不會出錯,或者不關心它是否出錯。一些函式返回錯誤,需要用其他函式獲得錯誤的具體資訊。例如accept返回inval...