Добавление значений, если запись равна нулю

У меня есть таблица со следующими данными:

CUSIP SEDOL DESC 1111 NULL ABC Corp 1234 NULL ABCD Corp NULL 12 ABCDE Corp 

Теперь у меня есть другая таблица на другом сервере данных:

 CUSIP SEDOL DESC 1111 18 ABC Corp 1234 19 ABCD Corp 1246 12 ABCDE Corp 

Как мне заняться заполнением значений NULL в первой таблице на основе значений, представленных в таблице на другом сервере базы данных? (Я использую SQL Server 2005)

 update table1 set sedol = (select sedol from database2.table2 where desc = table1.desc) where sedol is null; 

Из вашего вопроса cusip является ли cusip важным, поэтому вам может понадобиться:

 update table1 set sedol = (select sedol from database2.table2 where cusip = table1.cusip) where sedol is null; 

Чтобы обновить cusip, используйте это:

 update table1 set cusip = (select cusip from database2.table2 where desc = table1.desc and sedol = table2.sedol) where cusip is null; 
 Update BadTable set BadTable.SEDOL=Coalesce(BadTable.SEDOL,GoodTable.SEDOL) from GoodTable where GoodTable.[DESC]=BadTable.[DESC] 

может быть

 where GoodTable.[CUSID]=BadTable.[CUSID] 
 update table1 t1 set t1.sedol = coalesce (t1.sedol,(select top 1 sedol from table2 where t1.cusip = cusip and t1.desc = desc)) 

Сначала добавьте связанный сервер в соответствии с комментарием Тима.

Затем ряд запросов, подобных этому, основываются на соответствующих правилах.

 Update table1 Set Sedol = t2.Sedol From table1 t1 Inner Join server2.db2.schema2.table2 t2 On t1.CusIP = t2.CusIP and t1.[Desc] = t2.[Desc] And t1.Sedol Is Null 

После добавления связанного сервера вы увидите скрипт

 MERGE dbo.your_table AS target USING [AnotherServer].dbo.your_table AS source ON (target.[DESC] = source.[DESC]) WHEN MATCHED AND (target.CUSIP IS NULL OR target.SEDOL IS NULL) THEN UPDATE SET target.CUSIP = source.CUSIP, target.SEDOL = source.SEDOL; 
Давайте будем гением компьютера.