Sql 如何解析一个表中的字符串值以与另一个表中的值联接

Sql 如何解析一个表中的字符串值以与另一个表中的值联接,sql,parsing,join,ssms,ssms-2012,Sql,Parsing,Join,Ssms,Ssms 2012,我有一个问题,在哪里创建一个报告,我需要两个表连接,没有任何方式连接。我确实找到了一种他们可能加入的方式,但这很复杂 有一个表A,其中包含一个名为select_criteria的列。以下是它包含的3个值的一些示例: SELECT DISTINCT SUM(TRANSCRIPTDETAIL.CREDIT_BILLING) FROM SOMETABLE WHERE (( STUDENTFINANCIAL.TUITION_EXEMPTION = 'EMPFT' ) OR

我有一个问题,在哪里创建一个报告,我需要两个表连接,没有任何方式连接。我确实找到了一种他们可能加入的方式,但这很复杂

有一个表A,其中包含一个名为select_criteria的列。以下是它包含的3个值的一些示例:

SELECT DISTINCT SUM(TRANSCRIPTDETAIL.CREDIT_BILLING) FROM SOMETABLE WHERE   ((  STUDENTFINANCIAL.TUITION_EXEMPTION  =   'EMPFT'     )    OR     (   STUDENTFINANCIAL.TUITION_EXEMPTION  =   'EMPPT'     )))   

SELECT DISTINCT SUM(TRANSCRIPTDETAIL.CREDIT_BILLING) FROM SOMETABLE WHERE   (   STUDENTFINANCIAL.TUITION_EXEMPTION  =   'PART50'    )   
在表B中,我有一个名为“学费减免”的列,其中包含如下值:

EMPFT

EMPPT

PART50
在表A列中整个值的末尾,有与表B中的值匹配的学费豁免代码

是否有一种使用MSSQL的方法可以解析select_条件中长语句中的代码,以便它们与表B中的代码完全匹配?这是我对连接表a和表B的方法的想法,就像我需要做的那样。另一个复杂问题是,选择标准和学费减免值之间存在1:1的关系,但学费减免值和选择标准值之间存在1:1的关系

因此,最后,在一个示例中,两个表之间的连接应该打印两次相同的select_标准值(我引用了上面表A列表中的第一个值),但在这两行中,两个不同的学费豁免值(EMPFT和EMPPT)。或者,对于表A示例2,它将打印一次,并与第50部分匹配一次

我被困在这里了。我有一条语句成功地获取了我想要的select_标准值:

SELECT select_criteria
WHERE (
select_criteria LIKE '%EMPFT%' OR
select_criteria LIKE '%EMPPT%' OR
select_criteria LIKE '%PART50%' OR
)
但我需要做的是这样。当它获取我想要的select_条件值时,我想将它匹配的代码打印到此表中的一个新列。这些代码是表B中的值,如“EMPFT”、“EMPPT”和“PART50”。这就是为什么我想从select_标准中解析出代码,并将它们打印到表A的新列中。这样,表A和表B就有了一个匹配的值,我就可以编写并运行我的报告了。我现在不知道如何在SQL中实现它。我对Perl有点了解,但我希望在SSMS 2012中完成所有这一切

谢谢你的帮助


byobobab

您可以使用任何返回布尔值作为联接条件的表达式。因为LIKE返回bool,所以您应该能够执行以下操作:

select *
from tableA
join tableB
on tableA.select_criteria like '%' + tableB.codecolumn + '%'

我按照您的建议尝试了这个方法,但结果是表B中的codecolumn为空,而表A中的codecolumn为值