我的 LEFT OUTER JOIN 出现问题。我有一组查询,在#Temp 表中提供了大约 80,000 到 1,00000 条记录。现在,当我将这个#Temp 表与另一个表分开时,我必须放置一个 CASE 语句,即如果在与特定列连接时未找到记录,则获取该特定列值并在另一个具有匹配记录。该查询对于特定数据工作正常,但对于较大的数据,它只是继续执行或只是花费太多时间。我的查询是这样的:
SELECT * FROM #Temp
LEFT OUTER JOIN TABLE1 ON #Temp.Materialcode =
CASE WHEN TABLE1.MaterialCode LIKE 'HY%'
THEN TABLE1.MaterialCode
ELSE REPLACE(TABLE1.MaterialCode,
TABLE1.MaterialCode,
(SELECT NewMaterialCode
FROM TABLE2
WHERE OldMaterialCode = TABLE1.MaterialCode))
END
这里 TABLE2 只有两列 NewMaterialCode 和 OldMetarialCode。我要做的是,如果在 TABLE1 LIKE 'HY%' 类型中找不到材料代码,那么它应该采用该材料代码并在 TABLE2 中查找其后续的 NewMaterialCode 以获得具有 'HY' 类型和非'的两种类型的记录HY'型。我想我把我的问题说清楚了。任何帮助将不胜感激。