您好,登錄后才能下訂單哦!
1、說(shuō)明:復(fù)制表(只復(fù)制結(jié)構(gòu),源表名:a 新表名:b) (Access可用)
法一:select into b from a where 1<>1(僅用于SQlServer)
法二:select top 0 into b from a
2、說(shuō)明:拷貝表(拷貝數(shù)據(jù),源表名:a 目標(biāo)表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from a;
select * into b from a
3、說(shuō)明:跨數(shù)據(jù)庫(kù)之間表的拷貝(具體數(shù)據(jù)使用絕對(duì)路徑) (Access可用)
insert into b(a, b, c) select d,e,f from a in ‘具體數(shù)據(jù)庫(kù)’ where 條件
例子:..from a in '"&Server.MapPath(".")&"\data.mdb" &"' where..
4、說(shuō)明:子查詢(表名1:a 表名2:b)
select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)
5、說(shuō)明:顯示文章、提交人和最后回復(fù)時(shí)間
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6、說(shuō)明:外連接查詢(表名1:a 表名2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7、說(shuō)明:在線視圖查詢(表名1:a )
select * from (SELECT a,b,c FROM a) T where t.a > 1;
8、說(shuō)明:between的用法,between限制查詢數(shù)據(jù)范圍時(shí)包括了邊界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 數(shù)值1 and 數(shù)值2
9、說(shuō)明:in 的使用方法
select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)
10、說(shuō)明:兩張關(guān)聯(lián)表,刪除主表中已經(jīng)在副表中沒(méi)有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
11、說(shuō)明:四表聯(lián)查問(wèn)題:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
12、說(shuō)明:日程安排提前五分鐘提醒
SQL: select * from 日程安排 where datediff('minute',f開(kāi)始時(shí)間,getdate())>5
13、說(shuō)明:一條sql 語(yǔ)句搞定數(shù)據(jù)庫(kù)分頁(yè)
select top 10 b.* from (select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主鍵字段 = a.主鍵字段 order by a.排序字段
具體實(shí)現(xiàn):
關(guān)于數(shù)據(jù)庫(kù)分頁(yè):
declare @start int,@end int
@sql nvarchar(600)
set @sql=’select top’+str(@end-@start+1)+’+from T where rid not in(select top’+str(@str-1)+’Rid from T where Rid>-1)’
exec sp_executesql @sql
注意:在top后不能直接跟一個(gè)變量,所以在實(shí)際應(yīng)用中只有這樣的進(jìn)行特殊的處理。Rid為一個(gè)標(biāo)識(shí)列,如果top后還有具體的字段,這樣做是非常有好處的。因?yàn)檫@樣可以避免 top的字段如果是邏輯索引的,查詢的結(jié)果后實(shí)際表中的不一致(邏輯索引中的數(shù)據(jù)有可能和數(shù)據(jù)表中的不一致,而查詢時(shí)如果處在索引則首先查詢索引)
14、說(shuō)明:前10條記錄
select top 10 * form table1 where 范圍
15、說(shuō)明:選擇從10到15的記錄
select top 5 from (select top 15 from table order by id asc) table_別名 order by id desc
select from (select top 5 from (select top 15 * from table order by id asc) table_別名order by id desc) table_別名order by id asc
16、說(shuō)明:隨機(jī)取出10條數(shù)據(jù)
select top 10 * from tablename order by newid()
17、說(shuō)明:隨機(jī)選擇記錄
select newid()
生成多個(gè)Guid:
--CREATE TABLE #GuidList (Id int,Gid uniqueidentifier)
-- GO
--循環(huán)執(zhí)行次
--INSERT INTO #GuidList(Gid) SELECT newid()
--GO 100
--select * from #GuidList
N到結(jié)尾記錄
Select Top N * From 表 Order by ID Desc
案例
例如1:一張表有一萬(wàn)多條記錄,表的第一個(gè)字段 RecID 是自增長(zhǎng)字段, 寫一個(gè)SQL語(yǔ)句, 找出表的第31到第40個(gè)記錄。
select top 10 recid from A where recid not in(select top 30 recid from A)
分析:如果這樣寫會(huì)產(chǎn)生某些問(wèn)題,如果recid在表中存在邏輯索引。
select top 10 recid from A where……是從索引中查找,而后面的select top 30 recid from A則在數(shù)據(jù)表中查找,這樣由于索引中的順序有可能和數(shù)據(jù)表中的不一致,這樣就導(dǎo)致查詢到的不是本來(lái)的欲得到的數(shù)據(jù)。
解決方案
1, 用order by select top 30 recid from A order by ricid 如果該字段不是自增長(zhǎng),就會(huì)出現(xiàn)問(wèn)題
2,在那個(gè)子查詢中也加條件:select top 30 recid from A where recid>-1
例2:查詢表中的最后以條記錄,并不知道這個(gè)表共有多少數(shù)據(jù),以及表結(jié)構(gòu)。
set @s = 'select top 1 * from T where pid not in (select top ' + str(@count-1) + ' pid from T)'
print @s exec sp_executesql @s
19、說(shuō)明:選擇在每一組b值相同的數(shù)據(jù)中對(duì)應(yīng)的a最大的記錄的所有信息(類似這樣的用法可以用于論壇每月排行榜,每月熱銷產(chǎn)品分析,按科目成績(jī)排名,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
20、說(shuō)明:列示type、vender、pcs字段,以type字段排列,case可以方便地實(shí)現(xiàn)多重選擇,類似select 中的case。
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by typ
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。