日期:2014-05-18  浏览次数:20569 次

sql server 语句问题,急求
我写一个函数
CREATE function f_corp(@corpid varchar(100) ,@Start datetime,@end datetime,@class varchar(1000) )
returns varchar(100)
as
begin
declare @return as nvarchar(100) 
set @return = '0' 
 select @return=count(corpid) from ordertb where corpid= @corpid and resorttime>=@start and resorttime<@end  
  and serverclassid=@class
group by corpid
  return @return 
end
就是在 and serverclassid=@class出现在问题了
这是一类别,如果传过过来1,2,3,5都是正常的,
但我传过来了0,我要让这and serverid=@class失效,@class能不等于一个大于0非负数,有通配符

如果这样不行,
and serverclassid in(@class) 如果传过'1','2','3'都没有问题
但是如果传过 '1,2,3,4'这个字符串放进去就会出错,
Serverclassid in ('1,2,3,4') 如何转换成 serverclassid(1,2,3,4,5) 或serverclass('1','2','3','4')



------解决方案--------------------
if @class <> 0 
你上面的语句
else
上面语句不要and serverclassid=@class 这句.
------解决方案--------------------