Mat*_*ers 1 sql case where sql-like
我有一张名字表:
约翰·
彼得·
彼得-保罗·
玛丽
我有一个这些名称的下拉列表,我在顶部添加了"全部"作为选项.
我想将从下拉列表中选择的名称作为参数传递给where子句.
我想要做的只是如果名称没有作为'全'传递,则只有where子句
SELECT City, State
FROM EmployeeDetails
WHERE @NAME =
CASE @NAME
WHEN 'All' THEN '1=1'
ELSE (EmployeeDetails.NAME LIKE '' + @NAME + '%')
Run Code Online (Sandbox Code Playgroud)
我不能让这个工作.ELSE语句在单词'LIKE'附近给出错误'语法错误.
查看我发现的其他StackOverflow问题:
当运行不在CASE语句中的WHERE子句时,它适用于特定名称,例如:
WHERE (EmployeeDetails.NAME LIKE '' + @NAME + '%')
Run Code Online (Sandbox Code Playgroud)
如果我搜索彼得,它会按预期返回2个结果.玛丽1结果等
我显然无法将'全部'传递给那个人.
不要用case在where.简单地说:
SELECT City, State
FROM EmployeeDetails
WHERE (@NAME = 'All') OR (EmployeeDetails.NAME LIKE '' + @NAME + '%');
Run Code Online (Sandbox Code Playgroud)
我不确定目的'' +是什么,但你在问题中有这个,所以我要离开了.
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |