从sql表中提取一列并插入到另一个表中,作为多个记录加上不同的值

问题描述:

我需要从sql表中提取一列并将其复制到与多个值结合的另一个表中。例如,在源表上选择Col1,并将其复制到第一列自动增量结果表中,第二列是从源复制的列值,第三列将是另一个数值,但我们需要创建3条记录每个复制列值的值分别为10,20和30。从sql表中提取一列并插入到另一个表中,作为多个记录加上不同的值

源表:

+--------+---------+------+ 
| Col1 | Col2 | Col3 | 
+--------+---------+------+ 
| Value1 | Value10 | 123 | 
| Value2 | Value20 | 123 | 
| Value3 | Value30 | 123 | 
+--------+---------+------+ 

二次表:

+------+--------+-------+ 
| ColI | Col1 | ColII | 
+------+--------+-------+ 
| 1 | Value1 | 10 | 
| 2 | Value1 | 20 | 
| 3 | Value1 | 30 | 
| 4 | Value2 | 10 | 
| 5 | Value2 | 20 | 
| 6 | Value2 | 30 | 
+------+--------+-------+ 

(MS SQL),以这种方案适用于哪些查询?第二个表格已经用自动增量第一列创建,多个值始终为(10,20和30)。

+0

如果你的数据是众所周知的,重复的,会不会有什么不好的脚本填充第二个表? –

+0

脚本应该工作,我试图通过在TSQL中执行它来最小化依赖。干杯。 – gnaanaa

查询: SQLFIddleExample

SELECT t1.Col1, t2.COLII 
FROM Table1 t1 
CROSS JOIN (SELECT 10 as COLII 
      UNION ALL 
      SELECT 20 as COLII 
      UNION ALL 
      SELECT 30 as COLII) t2 

结果:

| Col1 | COLII | 
|--------|-------| 
| Value1 | 10 | 
| Value1 | 20 | 
| Value1 | 30 | 
| Value2 | 10 | 
| Value2 | 20 | 
| Value2 | 30 | 
| Value3 | 30 | 
| Value3 | 10 | 
| Value3 | 20 |