2011-07-07 189 views
0

表A
单个SQL插入查询

1.Int 
2.Name   
3.Int1 
4.Name1 

表B 列

1.Int 
2.Name 

如何插入表A的所有列表B柱在单个查询。?

回答

4

如果我明白你需要的是:insert select command

INSERT INTO b (col1,col2) 
SELECT col1,col2 FROM a 
UNION ALL 
SELECT col3,col4 FROM a 
+0

工作。那么列是不同的数据类型。相同的查询工作? – saran

+2

只要数据类型兼容并且所有内容都符合要求,它就无关紧要,但是如果您尝试将日期时间格式的varchar插入,那么这将不起作用。 – AndrewBay

0
INSERT INTO table1 (field1, field2) SELECT field1, field2 FROM table2 
0
--insert the all columns record from table A to table B 

INSERT INTO tableB ([Int], [Name]) 
SELECT [Int], [Name] FROM tableA 
UNION ALL 
SELECT [Int1], [Name1] FROM tableA 
1
INSERT INTO B (Int, Name) 
SELECT 
    CASE x.f WHEN 0 THEN A.Int ELSE A.Int1 END, 
    CASE x.f WHEN 0 THEN A.Name ELSE A.Name1 END 
FROM A 
    CROSS JOIN (SELECT 0 AS f UNION ALL SELECT 1) x 

的方法主要描述here