使用LIKE运算符进行多值参数的SQL查询

时间:2015-03-06 07:25:27

标签: sql sql-server

我的数据集包含两个字段 Main_Activity Requesting_Activity

样本数据集"

Main_activity    Reuesting_Activity
-------------    ------------------
Act1             Act1,Act1a,Act2,Act3
Act2             Act1a,Act3,Act5
Act3             Act1,Act3,Act4
Act4             Act2,Act4,Act5

当我使用SQL查询并将 Act1 作为参数(@ mainActivity)传递给数据集时

SELECT DISTINCT
    Main_Activity,
    Requesting_Activity
FROM Activity_table
WHERE Requesting_Activity LIKE ''+ (@mainActivity) +'' OR Requesting_Activity LIKE ''+ (@mainActivity) +',%' OR Requesting_Activity LIKE '%,'+ (@mainActivity) +',%' OR Requesting_Activity LIKE '%,'+ (@mainActivity) +''

我得到了预期的输出

Act1
Act3

问题是当我将参数设置为多选时,我收到错误。 我该如何解决?如何使用" LIKE和" IN"同一个查询中的运算符?

1 个答案:

答案 0 :(得分:1)

你的where子句充满了裁员

WHERE Requesting_Activity LIKE '%'+ (@mainActivity) +'%'