我正在尝试更新表(参见下面的代码)。其中,当匹配时,我想提取UserID,如果没有匹配,我希望它的值为6000。然而,这个脚本并没有完成我期望它做的事情。如果U.UserID不存在,它不会写入任何值(6000),如果它为null,则不会。我该如何绕过这个问题呢?
/* Ensure Person (UserID)*/
UPDATE #List
SET #List.UserID = ISNULL(U.UserID, '6000')
FROM #List
INNER JOIN table1 t1 ON #List.ID = t1.ID
INNER JOIN User U ON U.FirstName + ' ' + U.Surname = t1.PersonFullname发布于 2016-09-12 15:27:46
根据我在使用INNER连接表时遇到的问题,即这将只带来匹配的记录,现在如果您想要更新第一个表中的所有记录,不仅要匹配UserID为null的其他记录,那么这个问题的解决方案是使用LEFT JOIN
UPDATE List
SET List.UserID = ISNULL(U.UserID, '6000')
FROM #iList List
LEFT JOIN table1 t1 ON List.ID = t1.ID
LEFT JOIN User U ON U.FirstName + ' ' + U.Surname = t1.PersonFullnamehttps://stackoverflow.com/questions/39444837
复制相似问题