昨晚同事說(shuō)他想做一個(gè)二次查詢,他說(shuō)那是子查詢,我想不是的,子查詢是只能放在條件語(yǔ)句里的,而他想放在FROM 后面。
我想這應(yīng)可以用臨時(shí)表解決,以前也沒(méi)有做過(guò)臨時(shí)表,只是在書上了解到了這個(gè)概念,只好上百度搜了咯。
開始查到了一個(gè)用WITH 寫的語(yǔ)句,試了試,沒(méi)通過(guò),估計(jì)是行不通了。
又找了找,才找到了可以用select [字段1,字段2,...,] into #tempTable from table的形式,將查得的結(jié)果放到一個(gè)臨時(shí)表,而后再對(duì)這個(gè)臨時(shí)表操作.
今早上來(lái),查了查資料,把臨時(shí)表的相關(guān)東東了解了一遍:
其創(chuàng)建方法:
create table TempTableName,
或
select [字段1,字段2,...,] into TempTableName from table ,如上所說(shuō).
而后便可像使用常規(guī)表一樣使用它們.
臨時(shí)表其實(shí)是放在數(shù)據(jù)庫(kù)tempdb里的一個(gè)用戶表
分兩種:
一種是以#(局部)或##(全局)開頭的表,這種表在會(huì)話期間存,會(huì)話結(jié)束則自動(dòng)刪除;
另一種,如果創(chuàng)建時(shí)不以#或##開頭,而用tempdb.TempTable來(lái)命名它,則該表可在數(shù)據(jù)庫(kù)重啟前一直存在.
以上兩種都可手動(dòng)用
drop table TempTableName 來(lái)刪除.