连接表故障/ Join内的Select语句

时间:2019-03-28 20:16:30

标签: sql sql-server ssms

一个表的SITE编号包含破折号的“ item”列(我们将其称为DASHDB),而另一个表的SKU编号没有破折号的“ item”列(我们将其称为NODASH_DB)。我需要加入这两个表。

我知道我可以做这样的事情:

FROM (SELECT REPLACE (ITEMDASH,'-','') AS ITEMNO FROM DASHDB) AS NEWITEMNO
LEFT JOIN NODASH_DB ON NEWITEMNO.ITEMNO = NODASH_DB.ITEMNO

但是,我已经从其他表中提取数据了,这大约是四个联接。

我尝试过:

LEFT JOIN (SELECT REPLACE(ITEMDASH,'-','') AS ITEMNO FROM DASHDB) AS NEWDB ON NEWDB.ITEMNO = NODASH_DB.ITEMNO

但是它不接受正确的数据库。使用Microsoft SQL Server Management Studio 17。

1 个答案:

答案 0 :(得分:1)

在没有样本数据的情况下很难说,但这应该可行:

LEFT JOIN DASHDB 
ON REPLACE(DASHDB.ITEMDASH,'-','') = NODASH_DB.ITEMNO

例如,请参见http://sqlfiddle.com/#!18/36879/1