一、建立臨時表定義相關的變數:
create table #temptable --建立臨時表
(maintradecode int,
subtradecode int,
subtradename varchar(50)
)declare @keyword varchar(200)
declare @searchcount int
二、建立游標:
declare keywordcur cursor local for
select top 8 count(*) as searchcount,keyword
from keywordbysearch
where infotype='sell'
group by keywordbysearch.keyword
order by searchcount desc
三、開啟游標獲得資料並往臨時表中插入資料:
open keywordcur
fetch next from keywordcur into @searchcount,@keyword
while @@fetch_status=0
begin
insert into #temptable
select top 1 sd.tradecode as maintradecode,subtrade as subtradecode,
(select subtrades.tradename from subtrades where subtrades.tradecode=sd.subtrade) as subtradename
from supplydemand sd
where keywords like '%'+ @keyword +'%'
order by sd.sdid desc
fetch next from keywordcur into @searchcount,@keyword
end
四、刪除游標、返回臨時表資料和刪除臨時表:
close keywordcur
deallocate keywordcur
select * from #temptable
drop table #temptable
由於游標比較耗效能,在大量資料的場合不太適合使用游標.
可用同樣的方法操作游標和使用者表
資料庫臨時表
建立方法 方法一 createtable temptablename 或select 欄位1,欄位2,into temptablename from table 方法二 createtable tempdb mytemptable tidint 說明 1 臨時表其實是放在資料庫tempdb裡的乙個使...
資料庫表(臨時表)
oracle中的段 segment 是占用磁碟上儲存空間的乙個物件。儘管有多種型別,不過最常見的段型別如下 q 聚簇 cluster 這種段型別能儲存表。有兩種型別的聚簇 b 樹聚簇和雜湊聚簇。聚簇通常用於儲存多個表上的相關資料,將其 預聯結 儲存到同乙個資料庫塊上 還可以用於儲存乙個表的相關資訊。...
資料庫建立臨時表
表名前使用乙個 號,臨時表是區域性的,使用兩個 號,臨時表是全域性的,在斷開連線後sql會自動刪除臨時表 create table a id int,name varchar 50 insert into a id,name values 1,123 select from a drop table...