合并函数在SQL查询中的应用
我有一个具体要求,其中我有两个表,如下所述:合并函数在SQL查询中的应用,sql,split,coalesce,Sql,Split,Coalesce,我有一个具体要求,其中我有两个表,如下所述:材料详细信息和规范详细信息。我要做的是使用“-”(连字符)拆分Sp_code列值。然后在Material\u Details表中找到Sp\u code的Material\u值 例如: 如果我用“-”拆分“CHA-REZ”,那么我有两个值,“CHA”和“REZ”。现在我必须在Material_Details表中找到CHA的Material_值: 如果CHA的值不存在于Material_Details表的Material_Code列中,则我需要在Mate
材料详细信息
和规范详细信息
。我要做的是使用“-”(连字符)拆分Sp_code
列值。然后在Material\u Details
表中找到Sp\u code
的Material\u值
例如:
如果我用“-”拆分“CHA-REZ”,那么我有两个值,“CHA”和“REZ”。现在我必须在Material_Details表中找到CHA的Material_值:
- 如果CHA的值不存在于Material_Details表的Material_Code列中,则我需要在Material_Details表的Material_Code列中搜索REZ的值
- 如果两者都没有找到,我需要将其显示为空白
请参阅下表。任何帮助都将不胜感激
Material_Details Specification_Details
Material_Code Material_Value Sp_Code Value
ABC Ammeter CHA-REZ 1
TAB Table PAP-CHA 2
CHA Chair TAB-BBV 3
PAP Paper CNN-ASD 4
使用子查询派生“外键”,然后将Material\u Detail
表左键连接到子查询上两次,并将Material\u Detail
表中所需的列合并在一起
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
因此,您选择了SQL
、split
和coalesce
标记-您知道需要做什么,您是否正在找人为您编写SQL?