T-SQL:WHERE中的CASE语句?

Chr*_*ris 0 sql t-sql case where

我目前在SQL查询中有以下WHERE子句:

WHERE c.Town LIKE '%' + @Town + '%'
Run Code Online (Sandbox Code Playgroud)

我想做的是让第一个'%'可选 - 所以如果用户选择只按照刚开始给定文本的记录进行过滤,那么WHERE将是

WHERE c.Town LIKE @Town + '%'
Run Code Online (Sandbox Code Playgroud)

我认为最简单的方法就是CASE语句,但我似乎并不高兴,因为它看起来似乎是不正确的.我可以得到任何指示吗?这是我尝试的CASE声明:

WHERE c.Town LIKE (CASE WHEN @FilterOptions = 1 THEN '%' ELSE '') + @Town + '%'
Run Code Online (Sandbox Code Playgroud)

Pet*_*nov 5

你错过了END:

WHERE c.Town LIKE (CASE WHEN @FilterOptions = 1 THEN '%' ELSE '' END) + @Town + '%'
Run Code Online (Sandbox Code Playgroud)