MSSQL:使用like运算符过滤条件列表

时间:2018-04-09 11:41:53

标签: sql-server

我有一张表,其中有一个'指示'栏如下 -

Indication
-----------
Insomnia
Depression
Anxiety

我有另一张桌子

Condition                Code
------------------------------
Short term insomnia      1
Transient insomnia       2
Chronic depression       3
Post natal depression    4

我想使用表1中的列来使用like运算符过滤表2。 因此,我希望查询查找'%Insomnia%'%Depression%'等,并提供包含这些条款的所有条目。

但是,我希望在一个查询中过滤所有指示,而不是为每个指示进行此操作。

你能帮忙吗?

2 个答案:

答案 0 :(得分:3)

使用LIKE运算符加入两个表。

SELECT
    C.*,
    I.Indication
FROM
    Condition AS C
    INNER JOIN Indication AS I ON C.Condition LIKE '%' + I.Indication + '%'

答案 1 :(得分:2)

使用EXISTS

的另一种方法
SELECT * FROM Condition C
WHERE EXISTS
(
 SELECT 1 FROM Indications I WHERE  C.Condition LIKE '%' + I.[Indication] + '%'
)