MSSQL 建立臨時表
方法二:
建立於臨時表,並從現有的資料表中取出資料插入臨時表
方法一:
先建立臨時表結構
1 | CREATE TABLE #tb (id INT, name NVARCHER(20), gender TINYINT) |
再插入資料
1 | INSERT #tb SELECT 1, '王小明' , 0 |
方法二:
建立於臨時表,並從現有的資料表中取出資料插入臨時表
1 | SELECT * INTO #tb FROM orders |
如果資料量相當大時,用方法一就有點耗時..
直接使用方法二,在稍微修改一下就可以取出有用的資料
01 | SELECT |
02 | oi.id, |
03 | oi.order_id, |
04 | oi.name, |
05 | oi.gender, |
06 | oi.address, |
07 | oi.birth, |
08 | oi.create_date, |
09 | INTO |
10 | #order_info |
11 | FROM |
12 | cart_activity AS c, |
13 | orders AS o |
14 | CROSS APPLY ( |
15 | SELECT TOP(1) * FROM order_info WHERE o.order_id = order_id ORDER BY create_date DESC |
16 | ) AS oi |
17 | WHERE |
18 | c.activities_id IN (@act_id) |
19 | AND o.pay_general > 0 |
20 | AND o.order_id = c.order_id |
21 | AND o.order_id = oi.order_id |
22 | AND o.date BETWEEN '2011/09/01 00:00:00' AND '2011/12/31 23:59:00' |
在資料量超過 1萬筆時,方法一約需 3分鐘
方法二僅需 4秒...