不使用while或for循环,是否有办法在单个插入上插入记录两次或更多次? 感谢
INSERT INTO TABLE2 ((VALUE,VALUE)
SELECT VALUE,VALUE FROM TABLE1 )) * 2
答案 0 :(得分:2)
您需要CROSS JOIN
到2行的表格上。以下内容适用于SQL Server。
INSERT INTO TABLE2 ((VALUE,VALUE)
SELECT VALUE,VALUE
FROM TABLE1, (SELECT 1 UNION ALL SELECT 2) T(C)
如果您有辅助数字表,您也可以
SELECT VALUE,VALUE
FROM TABLE1 JOIN Numbers ON N <=2
答案 1 :(得分:1)
- 首先创建一个包含2条记录的虚拟表
INSERT INTO TABLE2 ((VALUE,VALUE)
SELECT VALUE,VALUE FROM TABLE1, dummytable ))
答案 2 :(得分:0)
这不是一种优雅的方式,但可以很容易地工作。 如果您有一个具有足够多记录的表,则可以使用TOP子句进行交叉连接
INSERT INTO TABLE2
SELECT VALUE,VALUE FROM TABLE1
cross join (select top 2 TABLE_DUMMY) as DUMMY
这适用于MQ SqlServer,要让它在其他DBMS中工作,您应该使用DBMS所需的关键字更改TOP