只是想知道是否有人可以帮助我完成一个非常简单的 SQL 查询。
我需要将数据从 table1 传输到 table2where table1.jobID = table2.jobID
我应该使用 join 吗?
我只想用来自 table1 的数据填充一个 NULL 列,使用 jobID 来匹配。
提前致谢
交流电
只是想知道是否有人可以帮助我完成一个非常简单的 SQL 查询。
我需要将数据从 table1 传输到 table2where table1.jobID = table2.jobID
我应该使用 join 吗?
我只想用来自 table1 的数据填充一个 NULL 列,使用 jobID 来匹配。
提前致谢
交流电
由于知识有限,听起来您只需要一个简单的更新:
UPDATE PreviousJobsTEST
SET dValuationDate = Jobs.dValuationDate
FROM PreviousJobsTEST
JOIN Jobs
ON PreviousJobsTEST.iJobID= Jobs.iJobID
如果您只想在它为空时更新它,那么您可以这样做:
UPDATE PreviousJobsTEST
SET dValuationDate = CASE WHEN PreviousJobsTEST.dValuationDate IS NULL THEN Jobs.dValuationDate ELSE PreviousJobsTEST.dValuationDate END
FROM PreviousJobsTEST
JOIN Jobs
ON PreviousJobsTEST.iJobID= Jobs.iJobID
或者,根据您的评论,您可以执行您列出的操作,您只需将其转换为插入后面的 SELECT :
INSERT INTO [DocPrep].[dbo].[PreviousJobsTEST] (dValuationDate)
SELECT [DocPrep].[dbo].[Jobs].[dValuationDate]
FROM [DocPrep].[dbo].[PreviousJobsTEST]
JOIN [DocPrep].[dbo].[Jobs]
ON [DocPrep].[dbo].[Jobs].[iJobID] = [DocPrep].[dbo].[PreviousJobsTEST].[iJobID]
当 t1.column 为 null 时,您需要更新。当 t1.column 不为空时,您应该将其设置为自身。
SELECT *
INTO #table1
FROM (SELECT '1' AS jobid,
NULL AS column1
UNION ALL
SELECT '2',
NULL
UNION ALL
SELECT '3',
NULL
UNION ALL
SELECT '4',
'A'
UNION ALL
SELECT '5',
NULL) a
SELECT *
INTO #table2
FROM (SELECT '1' AS jobid,
'1' AS column1
UNION ALL
SELECT '2',
'2'
UNION ALL
SELECT '3',
'3'
UNION ALL
SELECT '4',
'4'
UNION ALL
SELECT '5',
'5')b
UPDATE t1
SET t1.column1 = ( CASE
WHEN t1.column1 IS NULL THEN t2.column1
ELSE t1.column1
END )
FROM #table1 t1
LEFT JOIN #table2 t2
ON t1.jobid = t2.jobid
SELECT *
FROM #table1