2013-08-29 61 views
0

因此,我有2个字段,Other_EEsOther_EE_Names来自同一个表。我想合并到另一个表中的一个现有字段而不会中断。两者都包含一些信息。到目前为止,我将这两个字段分开合并,但第二个字段覆盖第一个字段。我怎样才能同时合并两个字段?这是我目前使用的。谢谢!如何在同一个语句中合并两个字段

UPDATE MI 
    SET MI.M_Reps_Contact_Info = M.Other_EE_Names + ' '+ M.Other_EEs + 
           COALESCE(MI.M_Reps_Contact_Info + 
              CHAR(13) + CHAR(10), '') 
    FROM dbo.suptbl_Sprint2_Interview AS M 
INNER JOIN dbo.suptbl_Sprint2_MgrInterview AS MI 
    ON M.Junction_ID = MI.Junction_ID` 
+2

你能告诉样本数据和输出?我没有看到任何问题,除非两个'Other_EE'字段具有'NULL'值。 –

+0

@Goat CO生成的输出是第二个字段的数据,这意味着最后推送的任何一个被合并。这两个字段都有一些数据。 –

+0

一些示例数据和所需的输出可能会有所帮助。 –

回答

1

如果第二个“覆盖”第一个,那么我猜测值可以是NULL。

试试这个set声明:

SET MI.M_Reps_Contact_Info = COALESCE(M.Other_EE_Names + ' ', '') + 
          COALESCE(M.Other_EEs, '') + 
          COALESCE(MI.M_Reps_Contact_Info + 
             CHAR(13) + CHAR(10), '') 
+0

谢谢!它正在完成这项工作,但结果是重复的。现在我该如何阻止这个重复数据? –

+0

确定重复的数据!看起来这是因为我多次运行UPDATE语句!所以这是我的解决办法: 'UPDATE MI SET MI.M_Reps_Contact_Info = COALESCE(M.Other_EE_Names + CHAR(13)+ CHAR(10), '')+ \t \t \t \t \t \t \t COALESCE(M.Other_EEs + CHAR(13)+ CHAR(10), '')+ \t \t \t \t \t \t \t COALESCE(MI.M_Reps_Contact_Info, '') FROM dbo.suptbl_Sprint2_Interview为M INNER JOIN dbo.suptbl_Sprint2_MgrInterview AS MI \t ON M.Junction_ID = MI.Junctio n_ID' P.S. “CHAR(13)+ CHAR(10)”因为换行符 –

+0

@Nicholas Krasnov感谢您的编辑:) –

相关问题