用于搜索 none 个特定值的 where 子句中的 Case 语句

Case statement in where clause to search for none specific values

使用 Windows SQL 是否可以设置允许用户 select 指定根据输入的值返回什么结果的参数?

基本上,不是为下面的每个 where 子句选项行创建 3 个单独的查询,我希望在 where 子句中输入 case 语句时可以实现相同的结果。
例如,如果用户 selects A,他应该检索 %gre% 或 %sma% 的值。

declare @value as varchar(2)
set @value = 'A'
select personA, personB 
        from dbo.list 
        where 
        case 
        when @value = 'A' then (option like '%gre%' or option like '%sma%')  
        when @value = 'B' then (option like '%tin%' or option like '%mic%')  
        when @value = 'C' then (option like '%gig%' or option like '%mul%') 

如果还有其他更好的想法,欢迎提出建议。

看起来你只是想做

where
(@value = 'A' and (option like '%gre%' or option like '%sma%')) or
(@value = 'B' and (option like '%tin%' or option like '%mic%')) or
(@value = 'C' and (option like '%gig%' or option like '%mul%')) ;