插入动态&静态数据到临时表

时间:2016-10-07 21:33:18

标签: sql-server-2012 insert temp-tables

我刚才使用" Insert"功能,并知道足够的SQL是危险的。

我试图通过结合使用动态和静态数据来生成自己的重复行数据。我使用的是SQL Server 2012.

以下需要的例子。

Create table #Temp
(Item nchar(32),
Company nchar(32))
;

Insert Into #Temp (Item, Company)
VALUES
(X, 'Company1'),
(X, 'Company2')
;
  • "公司1"和"公司2"是"静态"我手动添加的部分。
  • " X"在这种情况下,上面是选择语句[Select Item From Table中的项目编号,并且是"动态"部分因为每天返回的物品数量增加。

我们今天会假装"表"只有两个项目编号,100和200.所以我的最终结果是将每个公司实例添加到每个项目编号,如下所示:

Item |Company
----------
100 | Company1
100 | Company2
200 | Company1
200 | Company2

提前谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用CROSS JOIN,如:

;WITH items AS (
SELECT 100 Item
UNION ALL
SELECT 200
), companies AS (
SELECT 'Company1' as Company
UNION ALL
SELECT 'Company2'
)

--Insert Into #Temp (Item, Company)
SELECT  i.Item,
        c.Company
FROM items i
CROSS JOIN companies c

输出:

Item    Company
100     Company1
100     Company2
200     Company1
200     Company2