使用WHERE INSERT INTO

use*_*260 2 insert sql-server-2008

我试图插入JobNo,并CellNo在不列Table_1View_1.我写了这个查询,我收到一个错误.

请帮我纠正这个.

我正在使用SQL Server 2008

INSERT INTO Table_1(ID, JobNo, CellNo)
   SELECT View_1.ID, View_1.JobNo, View_1.CellNo
   FROM View_1
   WHERE View_1.JobNo 
   AND View_1.CellNo NOT IN (SELECT JobNo, CellNo FROM Table_1)
Run Code Online (Sandbox Code Playgroud)

JNK*_*JNK 6

问题是你的WHERE条款 - 你无法比较像这样的字段集. 您一次只能比较一个字段.

尝试改为:

WHERE View_1.JobNo NOT IN(SELECT JobNo FROM Table_1) 
AND View_1.CellNo NOT IN (SELECT CellNo FROM Table_1)
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用单个EXISTS语句:

INSERT INTO Table_1(ID, JobNo, CellNo)
SELECT View_1.ID, View_1.JobNo, View_1.CellNo
FROM View_1 v
WHERE NOT EXISTS (SELECT 1 FROM Table_1 t
                  WHERE t.JobNo = v.JobNo
                  AND t.CellNo = v.CellNo)
Run Code Online (Sandbox Code Playgroud)

  • "存在"为+1.即将张贴那一个.也许您应该提到您的查询不相同. (2认同)