2012-08-03 19 views
0

我有一个SQL视图,有5列。我想要写一个表,但只有2列中的数据,sql将5列写入2列

视图

id 
car1 
car2 
car3 
car4 

id 
cars 

INSERT INTO table 
SELECT * from view 
+1

你试过连接值吗?像这样:car1 || car2 || ... – hmmftg 2012-08-03 15:35:43

+0

你能提供一个例子吗? – hmmftg 2012-08-03 15:48:23

回答

2
insert cars (id, car) 
select id, cars 
from view 
unpivot 
(cars for car in (car1, car2,car3, car4)) as u 
1

你试过吗?

INSERT INTO table SELECT ID, Car1 + ',' + Car2 + ',' + Car3 + ',' + Car4 as Cars from view

+0

-1没有评论。经典 – phadaphunk 2012-08-06 00:19:45

2

蛮力和无知(但可靠):

INSERT INTO table 
    SELECT id, car1 FROM view WHERE car1 IS NOT NULL 
    UNION 
    SELECT id, car2 FROM view WHERE car2 IS NOT NULL 
    UNION 
    SELECT id, car3 FROM view WHERE car3 IS NOT NULL 
    UNION 
    SELECT id, car4 FROM view WHERE car4 IS NOT NULL 

的UNION具有消除任何重复的优点。