将动态和静态数据插入 Temp Table
Insert Dynamic & Static Data into Temp Table
我是使用 "Insert" 函数的新手,并且对 SQL 的了解足够危险。
我正在尝试通过结合使用动态和静态数据来生成我自己的重复行数据。我正在使用 SQL Server 2012。
下面的需求示例。
Create table #Temp
(Item nchar(32),
Company nchar(32))
;
Insert Into #Temp (Item, Company)
VALUES
(X, 'Company1'),
(X, 'Company2')
;
- "Company1" 和 "Company2" 是我手动添加的 "Static" 部分。
在这种情况下,上面的 - "X" 是来自 select 语句 [
Select Item From Table
的项目编号,并且是 "dynamic" 部分,因为返回的项目数量每天都在增加。
我们假设今天 "Table" 只有两个商品编号,100 和 200。所以我的最终结果是将 Company 的每个实例添加到每个商品编号,如下所示:
Item |Company
----------
100 | Company1
100 | Company2
200 | Company1
200 | Company2
提前致谢!
您可以像这样使用 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
我是使用 "Insert" 函数的新手,并且对 SQL 的了解足够危险。
我正在尝试通过结合使用动态和静态数据来生成我自己的重复行数据。我正在使用 SQL Server 2012。
下面的需求示例。
Create table #Temp
(Item nchar(32),
Company nchar(32))
;
Insert Into #Temp (Item, Company)
VALUES
(X, 'Company1'),
(X, 'Company2')
;
- "Company1" 和 "Company2" 是我手动添加的 "Static" 部分。 在这种情况下,上面的
- "X" 是来自 select 语句 [
Select Item From Table
的项目编号,并且是 "dynamic" 部分,因为返回的项目数量每天都在增加。
我们假设今天 "Table" 只有两个商品编号,100 和 200。所以我的最终结果是将 Company 的每个实例添加到每个商品编号,如下所示:
Item |Company
----------
100 | Company1
100 | Company2
200 | Company1
200 | Company2
提前致谢!
您可以像这样使用 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