从sql表中提取一列并作为多个记录与不同的值

时间:2017-06-02 05:25:15

标签: sql sql-server

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

来源表:

+--------+---------+------+
|  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)。

1 个答案:

答案 0 :(得分:1)

查询: 的 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 |