(4.47)sql server 中的 values 構造臨時表
阿新 • • 發佈:2020-08-20
【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 asid2 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拉。