在proc中设置参数

时间:2015-10-24 17:03:57

标签: sql reporting-services

我正在工作或报告您可以输入客户编号以查看所有详细信息。我被要求进行更改,他们可以输入客户端代码或0600为所有客户端的起始名称为“Jim Bob”或0400为客户名称以“Joe Bob”开头我已经提出以下声明但是它不起作用,有人可以帮助我。我正在使用sql 2008

where case when (@ClientCode = 0600 then c.sClientName Like 'Jim Bob%')   else
when (@ClientCode = 0400 then c.sClientName like 'Joe Bob%') else 
c.sClientCode = @ClientCode)

1 个答案:

答案 0 :(得分:0)

您的方案中不需要CASE,只需使用ANDOR语句的正确组合即可:

where 
    -- Next line is used only when client code is 0600
    @ClientCode = 0600 and c.sClientName Like 'Jim Bob%' OR
   -- Next line is used only when client code is 0400
    @ClientCode = 0400 and c.sClientName like 'Joe Bob%' OR 
    -- Next line is used only when client code is not 0400 or 0600
    @ClientCode NOT IN (0400, 0600) AND c.sClientCode = @ClientCode

顺便说一下,如果您的客户类型是文字类型(例如varcharnvarchar或类似),则需要使用引号,例如'0600'而不是0600。如果这是数字类型,那么您一开始就不需要0,您可以使用600代替0600