SQL Server如何与左连接进行字符串比较

时间:2014-11-05 00:31:03

标签: sql sql-server

我有两个表:条目表(一个名为entry的nvarchar列)和一个疾病表(一个名为疾病的nvarchar列)。

我想制作另一个包含所有入门疾病组合的表,其中entry.entry完全包含在疾病病例中。但是,我希望所有没有完全包含在其中的疾病的条目仍然以{entry,blank}的形式出现在结果表中。

我知道应该是这样的:

选择进入疾病 进入,疾病 哪里......

不确定如何写这个,提前谢谢

好的,我想出了这么多:

select entry.entry, disease.disease
into new_table
from entry, disease
where CHARINDEX(entry, disease) > 0

如何包含不匹配的条目?

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以使用left join 如果条目未包含在null的任何单元格中,它将显示所有条目并为列disease.disease提供disease.disease值。

SELECT entry.entry, disease.disease
FROM entry LEFT JOIN disease
    ON CHARINDEX(entry.entry, disease.disease) > 0

答案 1 :(得分:0)

另一种解决方案是使用LIKE关键字。请参见下面的示例:

create table #t (st varchar(20))
insert into #t values ('johnalexmichael'), ('johnmichael'),('alex'),('michael')
create table #t2 (st varchar(20))
insert into #t2 values ('alex'),('john')

SELECT t.st, t2.st
FROM #t t 
LEFT JOIN #t2 t2 on t.st like '%'+t2.st+'%'