誰かが非常に単純な SQL クエリを手伝ってくれるかどうか疑問に思っています。
table1 から table2 にデータを転送する必要がありますwhere table1.jobID = table2.jobID
join を使用する必要がありますか?
jobID を使用して一致する table1 のデータを NULL 列に入力したいだけです。
前もって感謝します
交流
誰かが非常に単純な SQL クエリを手伝ってくれるかどうか疑問に思っています。
table1 から table2 にデータを転送する必要がありますwhere table1.jobID = table2.jobID
join を使用する必要がありますか?
jobID を使用して一致する table1 のデータを NULL 列に入力したいだけです。
前もって感謝します
交流
You need to update when t1.column is null . and when t1.column is not null you should set it to itself.
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
知識が限られているため、必要なのは単純な更新だけのように思えます。
UPDATE PreviousJobsTEST
SET dValuationDate = Jobs.dValuationDate
FROM PreviousJobsTEST
JOIN Jobs
ON PreviousJobsTEST.iJobID= Jobs.iJobID
null の場合にのみ更新する場合は、次のようにします。
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]