簡體   English   中英

用INNER JOIN SQL Server替換

[英]REPLACE with INNER JOIN SQL Server

FROM   
    DW_Stage.PreStage.FilteredCoupon  c
INNER JOIN 
    DW.Linkage l WITH (nolock)
          REPLACE([l.CouponNumber], '/', '') ON (c.CouponSeqNbr = l.CouponNumber 
                                             AND c.PNRCreateDate = l.PNRCreateDate 
                                             AND c.PNRLocator = l.PNRLocator 
                                             AND c.PrimaryDocNbr = l.PrimaryDocNbr)

因此,在CouponNumber中有兩個記錄有一個“ /”,這導致我的SSIS包失敗。 如果我使用此REPLACE函數,這將是它的最佳用法? 還是應該在ON部分使用REPLACE功能? 謝謝

您希望replace()on一部分。 您的語法沒有意義。 但您也想刪除方括號:

FROM DW_Stage.PreStage.FilteredCoupon c INNER JOIN
     DW.Linkage l
     ON c.CouponSeqNbr = REPLACE(l.CouponNumber, '/', '') AND
        c.PNRCreateDate = l.PNRCreateDate AND
        c.PNRLocator = l.PNRLocator AND
        c.PrimaryDocNbr = l.PrimaryDocNbr 

ON條件前的括號也不會增加任何值。

FROM   
          DW_Stage.PreStage.FilteredCoupon  c
          INNER JOIN 
          DW.Linkage l WITH (nolock)


              ON 
          (     
         c.CouponSeqNbr = REPLACE([l.CouponNumber], '/', '')
        AND c.PNRCreateDate = l.PNRCreateDate 
        AND c.PNRLocator = l.PNRLocator 
        AND c.PrimaryDocNbr = l.PrimaryDocNbr )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM