左连接获取不匹配的记录

时间:2014-07-22 14:24:14

标签: sql sql-server tsql

我在2个表之间执行左连接。假设两个表都有id,name和sal等列,我需要获取匹配的记录和不匹配的记录。 jon键在这里是id。对于不匹配的记录,每列的sal列应替换为90000,90001,90002等。因此,在执行连接操作后,我将能够通过sal列识别不匹配的记录。有人可以帮我查询吗? 谢谢 enter image description here

2 个答案:

答案 0 :(得分:2)

select ta.id,ta.name,
coalesce(tb.sal,
   (row_number() over 
   (partition by tb.sal order by tb.id)) + 89999) sal 
from ta left join tb on ta.id = tb.id

答案 1 :(得分:1)

select 
    ta.id, 
    ta.name, 
    ISNULL(tb.sal, ROW_NUMBER() over (partition by tb.sal order by ta.id) + 89999)
from table_a ta
    left join table_b tb ON tb.id = ta.id
order by ta.id