我有两个表:条目表(一个名为entry的nvarchar列)和一个疾病表(一个名为疾病的nvarchar列)。
我想制作另一个包含所有入门疾病组合的表,其中entry.entry完全包含在疾病病例中。但是,我希望所有没有完全包含在其中的疾病的条目仍然以{entry,blank}的形式出现在结果表中。
我知道应该是这样的:
选择进入疾病 进入,疾病 哪里......
不确定如何写这个,提前谢谢
好的,我想出了这么多:
select entry.entry, disease.disease
into new_table
from entry, disease
where CHARINDEX(entry, disease) > 0
如何包含不匹配的条目?
答案 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+'%'