1. 程式人生 > 實用技巧 >(4.47)sql server 中的 values 構造臨時表

(4.47)sql server 中的 values 構造臨時表

【1】構造臨時表的幾種辦法

【1.1】CTE

我們一般構造臨時表,都要用CTE遞迴(但這比較適合大資料量)

我們要小資料量構造臨時表,我以前經常用的是

;with as temp(
select 1 as id1 ,2 as id2 union all
select 3 as id1 ,4 as id2 
)
select * from temp

【1.2】真實生成臨時表( select * into from table )

select 1 as id1 ,2 as id2 into #temp1 
union all
select 3 as id1 ,4 as
id2 select * from #temp1

【1.3】VALUES

VALUES 用得最多,最常見的就是

INSER INOT 表名(列名1,列名2,......) VALUES(值1,值2,......)

----------------------------------------------------------------------------

另外一種用法:

使用 values 返回臨時表。

----------------------------------------------------------------------------

--語法:

SELECT * FROM (   VALUES   (1,2,3,......)   ,(1,2,3,......)   ,(1,2,3,......)   ,(1,2,3,......)   ,(1,2,3,......)   ,(1,2,3,......) ) AS t(c1,c2,c3......)

------------------------------------------------------------------------------------

例如:

select * from ( 
    values(1
,1), (1,2) ) t(id1,id2)

  

----------------------------------------

需要注意地方:列數量 要與 ” Values(.....)” ,小括號中的列的數量一樣,並且“()”是作為一組資料,也就是一行資料,所以,每個小括號裡面的列數量也要一樣。

其實還有其他辦法,比如派生表 select * from (select a from table where a<100)......

這裡就不一一舉例了,把常用的拿出來就OK拉。