我有一个特定的要求,我有两个表,如下所述:Material Details
和Specification Details
。我要做的是使用“ - ”(连字符)拆分Sp_Code
列值。然后在Material_Value
表格中找到Sp_Code
的{{1}}。
例如:
如果我使用“ - ”拆分“CHA-REZ”,那么我有两个值,“CHA”和“REZ”。现在我必须在Material_Details表中找到CHA的Material_Value:
请参阅下表以供参考。任何帮助将不胜感激。
Material_Details
答案 0 :(得分:1)
使用子查询派生'外键',然后LEFT JOIN
将Material_Detail
表导入子查询两次,COALESCE
导出Material_Detail
表<所需的列/ p>
SELECT *, COALESCE(md1.Material_Value, md2.Material_Value, '') Material_Value
FROM (
SELECT *,
SUBSTRING(Sp_Code, 1, CHARINDEX('-', Sp_Code, 1)-1) FK1,
SUBSTRING(Sp_Code, CHARINDEX('-', Sp_Code, 1)+1, LEN(Sp_Code)-1) FK2
FROM Specification_Details
) spec
LEFT JOIN Material_Details md1 ON spec.FK1 = md1.Material_Code
LEFT JOIN Material_Details md2 ON spec.FK2 = md2.Material_Code