sql脚本插入多行

时间:2014-03-27 13:20:26

标签: sql

想象一下,我在sql server 2012中有一个这样的表

Id | type | binary
1    1      FFX09
1    2      HY6Z0
2    1      TY67D
2    2      RTY7S
3    1      3YDH8
3    2      383JD
3    3      4HED8

我想要做的是为每个没有相应类型3的id插入一个新行。它将添加相同的id,type = 3,binary将从类型2行中获取值那个id。

我可以在循环中进行,但想知道是否有基于集合的方法来执行此操作?

由于

2 个答案:

答案 0 :(得分:1)

这是insert select语句的经典用例:

INSERT INTO my_table
SELECT  id, 3, binary
FROM    my_table t_outer
WHERE   type = 2 AND NOT EXISTS (SELECT *
                                 FROM   my_table t_inner
                                 WHERE  type = 3 AND t_inner.id = t_outer.id)

答案 1 :(得分:0)

怎么样:

INSERT INTO mytable
SELECT DISTINCT id, 3, (SELECT binary FROM mytable mt2 WHERE mt.id=mt2.id AND type=2)
    FROM mytable mt
        WHERE id NOT IN (SELECT id FROM mytable WHERE type = 3)