首页 > 解决方案 > 使用 SQL Server Join 拆分值并与表进行比较

问题描述

我有两个名为Componentsand的表PDF_MSDS。该Component表包含列f_chem_namef_component_id并且f_chem_name它包含以下示例数据。

组件

SELECT F_Cas_Number, F_Component_Id, F_Chem_Name 
FROM Components  
WHERE F_Chem_Name = 'CHMNM_17816'

输出

F_Cas_Number    F_Component_Id  F_Chem_Name
-------------------------------------------        
CAS_5861         PRD1000826      CHMNM_17816

PDF_MSDS表格样本数据

F_PRODUCT    F_CAS_NUMBERS                         F_COMPONENT_IDS
----------------------------------------------------------------------
360          CAS_5779¿CAS_5861¿CAS_2614¿           3E000685¿3E002268¿3E004960¿3E005217¿PRD1000826¿

现在我想通过比较 表中的和表中给定的表中的表来显示表中的f_product值。PDF_MSDSF_Cas_NumberF_Component_IdComponentsF_CAS_NUMBERSF_COMPONENT_IDSPDF_MSDSf_chem_nameComponents

但是我无法直接使用 join with F_Cas_Numberin Componentstable 和F_CAS_NUMBERSin PDF_MSDStable 以及F_Component_Idin Componentstable with F_COMPONENT_IDSin进行比较,PDF_MSDS因为多个cas_numbersandcomponent_ids存储在表中的F_CAS_NUMBERSandF_COMPONENT_IDS列中PDF_MSDS

如何搜索和比较 cas_numbers 和 component_ids 并选择特定记录。请帮助。F_Chem_Name 是程序的输入参数。

标签: sql-server-2008stored-proceduressplit

解决方案


您可以在 JOIN 条件中使用 LIKE。

JOIN TableB
  ON TableA.Column LIKE '%'+TableB.Column+'%'

推荐阅读