以下是我正在使用的陈述。
insert into Course_Data (Branch, CC, C_Title, Sem, Credits)
values
(select distinct from (select * from Course_Data)
union
(select * from TEMP1) a order by a.CC)
我遇到了错误:
关键字“select”附近的语法不正确。 'a'附近的语法不正确。
课程_数据:
Branch | CC | C_Title | Sem | Credits
CS sub1 Networks 3rd 4:1:1=6
温度:
Branch | CC | C_Title | Sem | Credits
MCA sub1 Compuuters 3rd 4:1:1=6
CS sub1 Networks 3rd 4:1:1=6
这是2个表,因此在执行查询后,我必须将MCA Branch数据放入Course_Data表中,而不重复CS分支数据。即 Course_Data:
Branch | CC | C_Title | Sem | Credits
CS sub1 Networks 3rd 4:1:1=6
MCA sub1 Compuuters 3rd 4:1:1=6
答案 0 :(得分:3)
使用SELECT
语句的插入不需要关键字VALUES
。请参阅synthax MSDN。
所以你的查询将是
INSERT INTO Dist_Data (Branch,CC,C_Title,Sem,Credits)
select *
from
(
select * from Course_Data
union
select * from TEMP1
)a
order by a.CC
对*
使用SELECT-INSERT
时要小心,因为如果源表和目标表中的列数不匹配,则会引发错误。所以最好像下面这样使用
INSERT INTO Dist_Data (Branch,CC,C_Title,Sem,Credits)
select *
from
(
select COL1,COL2,COL3,COL4,COL5 from Course_Data
union
select COL1,COL2,COL3,COL4,COL5 from TEMP1
)a
order by a.COLUMNNAME
编辑:
根据您的新要求,您可以使用EXCEPT
子句/运算符来避免将重复数据插入Course_Data
表。使用EXCEPT
时,列的顺序应相同。有关EXCEPT
here的更多信息。
EXCEPT
<强> QUERY 强>
INSERT INTO Course_Data (Branch,CC,C_Title,Sem,Credits)
select *
from
(
SELECT Branch,CC,C_Title,Sem,Credits FROM TEMP1
EXCEPT
SELECT Branch,CC,C_Title,Sem,Credits FROM Course_Data
)a
order by a.COLUMNNAME