我正在尝试更新表格(下面的代码)。 在哪里,当我想要提取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
答案 0 :(得分:4)
根据我使用INNER JOIN加入表的问题,即这将只带来匹配的记录,现在如果你想更新First表中的所有记录,不仅匹配以及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.PersonFullname