从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)。
答
查询: 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 |
如果你的数据是众所周知的,重复的,会不会有什么不好的脚本填充第二个表? –
脚本应该工作,我试图通过在TSQL中执行它来最小化依赖。干杯。 – gnaanaa