我在SQL Server存储过程中使用如下的where子句获得了sql语句:
Select (fields)
From Table
Where Testname like @SearchLetter + '%'
我需要检查参数@SearchLetter
,如果它是"#",我需要让参数选择字段Testname
开头的记录数字字段(0-9)
我尝试了几件事(如果/选择等),但我似乎无法得到我需要的东西。
任何人都知道如何做到这一点?
答案 0 :(得分:1)
您可以使用
Where Testname like REPLACE(@SearchLetter, '#', '[0-9]') + '%'
假设字符串始终是一个字符(或者您总是希望在散列落入的任何地方进行此替换)否则使用CASE
语句来检查是否完全相等。
Where Testname like
CASE WHEN @SearchLetter = '#'
THEN '[0-9]'
ELSE @SearchLetter
END + '%'
答案 1 :(得分:1)
尝试
where Testname like case @SearchLetter
when '#' then '[0-9]' + '%'
else @Searchletter + '%' end
答案 2 :(得分:0)
最简单的方法是
|