用于搜索 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%')) ;
使用 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%')) ;