我正在尝试填写缺失的值。一个简单的示例是表A有10行,其ID为1到10。
表B有5行1,3,5,7,9
我需要使用表A来填写表B中缺少的偶数。
最好的方法是什么?
答案 0 :(得分:0)
CREATE TABLE #A (
Id INT
,Val VARCHAR(10)
)
CREATE TABLE #B (
Id INT
,Val VARCHAR(10)
)
INSERT INTO #A (
Id
,Val
)
VALUES (
1
,'1'
)
INSERT INTO #A (
Id
,Val
)
VALUES (
2
,'2'
)
INSERT INTO #A (
Id
,Val
)
VALUES (
3
,'3'
)
INSERT INTO #B (
Id
,Val
)
VALUES (
1
,'1'
)
INSERT INTO #B (
Id
,Val
)
SELECT Id
,Val
FROM #A a
WHERE NOT EXISTS (
SELECT NULL
FROM #B b
WHERE b.Id = a.Id
)
AND a.Id % 2 = 0
Select * from #B
答案 1 :(得分:0)
使用for循环对表A进行选择查询,该循环将比较每个循环的搜索结果。如果我不匹配,请执行插入操作。如果要在DB内部运行它,请为其创建SP,否则,请创建一个简单的控制台应用程序或类似的应用程序。
答案 2 :(得分:0)
您可以使用INSERT INTO ... SELECT...
INSERT INTO A
SELECT B.ID FROM B
WHERE B.ID % 2 = 0
AND B.ID NOT IN (SELECT ID FROM A)
只需确保SELECT
与您要插入的列相同。
答案 3 :(得分:0)