Sql server 如何使用左连接和空值执行update语句

Sql server 如何使用左连接和空值执行update语句,sql-server,sql-server-2012,Sql Server,Sql Server 2012,我试图更新一个值为空的表。这就是我到目前为止所做的 update s set s.trading_partner_name = '12345' , s.edi_interchange_id_qualifier = '01' , s.edi_interchange_id = '12345' , s.application_code = '12345' , s.element_separator = '*'

我试图更新一个值为空的表。这就是我到目前为止所做的

    update s
    set   s.trading_partner_name = '12345'
    ,     s.edi_interchange_id_qualifier = '01'
    ,     s.edi_interchange_id = '12345'
    ,     s.application_code = '12345'
    ,     s.element_separator = '*'
    ,     s.repetition_separator = 'U'
    from  customer_edi_setting s
          right join customer c on c.customer_id = s.customer_id
    where c.class_1id like 'test customer'
这将更新所有值,但这些字段中具有空值的客户除外。我正在尝试更新具有空值的客户。非常感谢您的帮助

我得到了这样的东西

CustomerID  TradingPartnerName  EdiInterchangeIdQualifier  EdiInterchangeId  ApplicationCode

ABC  12345  01    12345  12345  
DEF  null   null  null   null
GHI  12345  01    12345  12345
但是我想要

ABC  12345  01  12345  12345  
DEF  12345  01  12345  12345
GHI  12345  01  12345  12345
试试这个

UPDATE s 
SET    s.trading_partner_name = COALESCE(s.trading_partner_name, '12345'), 
       s.edi_interchange_id_qualifier = 
       COALESCE(s.edi_interchange_id_qualifier, '01'), 
       s.edi_interchange_id = COALESCE(s.edi_interchange_id, '12345'), 
       s.application_code = COALESCE(s.application_code, '12345'), 
       s.element_separator = COALESCE(s.element_separator, '*'), 
       s.repetition_separator = COALESCE(s.repetition_separator, 'U') 
FROM   customer_edi_setting s 
       INNER JOIN customer c 
               ON c.customer_id = s.customer_id 
WHERE  c.class_1id LIKE 'test customer' 

你能详细说明零号问题的适用范围吗?从您的问题来看,您似乎只想更新“不具有空值”的值。这更新了与原始字段相同的字段,但没有更新具有空值的字段。@TonyBergeson-您可以在问题中添加示例数据和预期输出吗?这有意义吗?还是我需要进一步澄清?谢谢你的帮助!