SQL Server替换合并操作中的函数

时间:2016-03-29 09:44:59

标签: sql sql-server sql-server-2008

我想将临时变量与我的表列匹配以合并其内容,但我的临时变量包含一个字母,我需要删除它以匹配我的表中的两列。我不知道什么是正确的代码。

这是临时表的内容

  

F20151103-1010 | FSI | FRANCISCA MANALO BISCOCHO |已交付| 42317

     

F20151103-1019 | FSI | NINA MARTINNE HAMOY CAJAYON |已交付| 42314

hover

ERROR:

  

将varchar值'F20160323-1000'转换为数据类型int时转换失败。

1 个答案:

答案 0 :(得分:0)

你能否尝试更换

带有'+'-'+'

+''-''+

set @sql = '
        MERGE gen_048_MAR2016 target
        USING #records source
            ON target.refdate+''-''+target.refcount = source.'+replace(refnum, 'F', '')+'
        WHEN MATCHED THEN
            UPDATE
                SET
                target.stat = source.stat

        WHEN NOT MATCHED BY TARGET THEN
          INSERT (stat, statdate)
          VALUES (source.stat, source.statdate)                 
            ;'

编辑: target.refdate' +' - ' +' target.refcount不是联系人。 您正在减去2列。

为什么不直接添加' F'到另一边?

set @sql = '
            MERGE gen_048_MAR2016 target
            USING #records source
                ON ''F''+target.refdate+''-''+target.refcount = source.refnum
            WHEN MATCHED THEN
                UPDATE
                    SET
                    target.stat = source.stat

            WHEN NOT MATCHED BY TARGET THEN
              INSERT (stat, statdate)
              VALUES (source.stat, source.statdate)                 
                ;'