INNER JOIN WITH LIKE AND PREFIX

时间:2018-03-21 17:31:32

标签: sql sql-server

表A中的ITEM1和表B中的B-ITEM1,我想加入它们,因此A-ITEM1 = B-ITEM具有内部连接,因为它们只是具有不同的前缀。任何帮助将不胜感激。

/*My scripts*/
SELECT TOP 50
    A.ITEMNMBR AS 'Item Number',                    
    A.QTYONHND AS 'Quantity On Hand'    

    FROM [NSR].dbo.[IV00102] A
    INNER JOIN [ART].dbo.[IV00101] B
    ON A.ITEMNMBR = B.ITEMNMBR

ORDER BY A.ITEMNMBR

/ 该部分的问题是在NSR数据库中,项目编号是NSR-ITEM1,而对于ART数据库,项目编号= ART-ITEM1 /

/ 我希望结果显示...因为是同一个项目 /     ITEMNMBR QTYONHND     NSR-ITEM1 12     ART-ITEM1 12

1 个答案:

答案 0 :(得分:0)

您可以在ON子句中使用字符串函数。

也许这个会有所帮助。

 ON REPLACE(A.ITEMNBR, 'NSR-', 'ART-') = B.ITEMNBR

这会将“NSR-ITEM1”修改为ART-ITEM1。然后可以测试它们是否相等。

但是,要清楚,这不是解决问题的好方法。这很脆弱,因为您的ITEMNBR值可能不符合NSR-whatever模式。那些不匹配。