收藏的SQLServer技巧集
更新時(shí)間:2007年03月12日 00:00:00 作者:
上次寫(xiě)了個(gè)ACCESS技巧集,反映良好,這次來(lái)個(gè)SQL語(yǔ)句特殊技巧吧
1.把某個(gè)字段重新生氣序列(從1到n):
DECLARE @i int
Set @i = 0
Update Table1 Set @i = @i + 1,Field1 = @i
2.按成績(jī)排名次
Update 成績(jī)表
Set a.名次 = (
Select Count(*) + 1
From 成績(jī)表 b
Where a.總成績(jī) < b.總成績(jī)
)
From 成績(jī)表 a
3.查詢(xún)外部數(shù)據(jù)庫(kù)
Select a.*
From OpenRowSet('Microsoft.Jet.OLEDB.4.0','c:\test.mdb';'admin';'',Table1) a
4.查詢(xún)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.在查詢(xún)中指定排序規(guī)則
Select * From Table1 Order By Field1 COLLATE Chinese_PRC_BIN
為什么要指定排序規(guī)則呢?參見(jiàn):
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1633985
例,檢查數(shù)據(jù)庫(kù)中的Pub_Users表中是否存在指定的用戶(hù):
Select Count(*) From Pub_Users Where [UserName]='admin' And [PassWord]='aaa' COLLATE Chinese_PRC_BIN
默認(rèn)比較是不區(qū)分大小寫(xiě)的,如果不加COLLATE Chinese_PRC_BIN,那么密碼aaa與AAA是等效的,這當(dāng)然與實(shí)際不符.注意的是,每個(gè)條件都要指定排序規(guī)則,上例中用戶(hù)名就不區(qū)分大小寫(xiě).
6.Order By的一個(gè)小技巧
Order By可以指定列序而不用指定列名,在下面的例子里說(shuō)明它的用處(注意,第三列未指定別名)
Select a.ID,a.Name,(Select Count(*) From TableB b Where a.ID=b.PID) From TableA a Order By 3
1.把某個(gè)字段重新生氣序列(從1到n):
DECLARE @i int
Set @i = 0
Update Table1 Set @i = @i + 1,Field1 = @i
2.按成績(jī)排名次
Update 成績(jī)表
Set a.名次 = (
Select Count(*) + 1
From 成績(jī)表 b
Where a.總成績(jī) < b.總成績(jī)
)
From 成績(jī)表 a
3.查詢(xún)外部數(shù)據(jù)庫(kù)
Select a.*
From OpenRowSet('Microsoft.Jet.OLEDB.4.0','c:\test.mdb';'admin';'',Table1) a
4.查詢(xún)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.在查詢(xún)中指定排序規(guī)則
Select * From Table1 Order By Field1 COLLATE Chinese_PRC_BIN
為什么要指定排序規(guī)則呢?參見(jiàn):
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1633985
例,檢查數(shù)據(jù)庫(kù)中的Pub_Users表中是否存在指定的用戶(hù):
Select Count(*) From Pub_Users Where [UserName]='admin' And [PassWord]='aaa' COLLATE Chinese_PRC_BIN
默認(rèn)比較是不區(qū)分大小寫(xiě)的,如果不加COLLATE Chinese_PRC_BIN,那么密碼aaa與AAA是等效的,這當(dāng)然與實(shí)際不符.注意的是,每個(gè)條件都要指定排序規(guī)則,上例中用戶(hù)名就不區(qū)分大小寫(xiě).
6.Order By的一個(gè)小技巧
Order By可以指定列序而不用指定列名,在下面的例子里說(shuō)明它的用處(注意,第三列未指定別名)
Select a.ID,a.Name,(Select Count(*) From TableB b Where a.ID=b.PID) From TableA a Order By 3
相關(guān)文章
sql連接查詢(xún)語(yǔ)句中on、where篩選的區(qū)別總結(jié)
接觸Sql語(yǔ)句時(shí)間挺長(zhǎng)時(shí)間了,聽(tīng)他人說(shuō)過(guò)sql語(yǔ)句的連接查詢(xún),但一直沒(méi)有認(rèn)真研究和使用過(guò)!下面這篇文章主要給大家介紹了關(guān)于sql連接查詢(xún)語(yǔ)句中on、where篩選兩者之間區(qū)別的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友們下面來(lái)一起看看吧。2017-07-07存儲(chǔ)過(guò)程返回?cái)?shù)組對(duì)象示例代碼
存儲(chǔ)過(guò)程返回?cái)?shù)組對(duì)象其實(shí)就相當(dāng)于返回List里面放的對(duì)象數(shù)據(jù),下面與大家分享是例子,感興趣的朋友可以學(xué)習(xí)下2013-07-07mybatis 項(xiàng)目配置文件實(shí)例詳解
這篇文章主要介紹了mybatis 項(xiàng)目配置文件實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03使用dump transaction with no_log的危險(xiǎn)性說(shuō)明
在命令參考手冊(cè)中的dump transaction with no_log條目下,有一條警告信息告訴你,你應(yīng)該把這條命令作為沒(méi)有其它辦法時(shí)的最后一招才使用它2012-07-07收藏的SQL知識(shí)以及SQL語(yǔ)句簡(jiǎn)單實(shí)踐通俗易懂
首先說(shuō)明,這個(gè)筆者2年前學(xué)習(xí)SQL的遺漏下來(lái)的筆記,由于參加完騰訊的筆試,內(nèi)容比較偏向數(shù)據(jù)機(jī)構(gòu)和編譯以及數(shù)據(jù)庫(kù),剛好要換臺(tái)本本,心里不想把它弄死在硬盤(pán)里,覺(jué)得蠻好的,所以把它都分享了2012-06-06由拖庫(kù)攻擊談口令字段的加密策略(數(shù)據(jù)庫(kù)加密)
我不得不慘痛地寫(xiě)在前面的是,這是一個(gè)安全崩盤(pán)的時(shí)代。過(guò)去一年,已經(jīng)證實(shí)的遭遇入侵、并導(dǎo)致關(guān)鍵數(shù)據(jù)被竊或者被泄露的公司,包括索尼、世嘉這樣的大型游戲設(shè)備廠商;包括花旗銀行這樣的金融機(jī)構(gòu),也包括了RSA這樣的安全廠商2012-01-01