带有参数的存储过程,怎么根据参数的值来写啊?
比如:
create proc test
(@p1 varchar(10),@p2 varchar(10),@p3 varchar(10))
as
begin
如果p1和p2都不为空时
select * from test where a=p1 and b=p2
如果p1和p2都一个为空时,要怎么写?
end

解决方案 »

  1.   

    if (@p1 is null or @p1='')
       .........
    else
       ..........
      

  2.   

    Declare @GetUserInfo table(state varchar(20),ICCard_No varchar(50),ICCard_Glide_Id int,
                               Tourist_Name varchar(8),Tourist_Identity varchar(18),
                               Tourist_City varchar(50),Tourist_Sex varchar(2),Tourist_Birthday DateTime,
                               SellAmount money,Consume_Money money)
    set @QuerySql='insert into @GetUserInfo select state=g.dictionary_value,c.ICCard_No,c.ICCard_Glide_Id,a.Tourist_name,a.Tourist_Identity,Tourist_City=f.dictionary_value,Tourist_Sex=case a.Tourist_Sex when ''1'' then ''男'' when ''2'' then ''女'' end,a.Tourist_birthday,SellAmount=sum(c.Fact_SellAmount),Consume_Money=sum(d.Consume_Money)
    from t_SellCircs c
    left join t_Consume_Info d on Convert(varchar(20),c.OutCard_Time,120)=Convert(varchar(20),d.Card_SaleTime,120) 
    join t_TouristConsume_Info b on c.SellGlide_Id=b.SellGlide_Id 
    join t_tourist_info a on b.Tourist_Identity=a.Tourist_Identity 
    join t_ICCard_Info e on c.ICCard_No=e.ICCard_No 
    join t_sysdictionary f on a.Tourist_City=f.value_id 
    join t_sysdictionary g on e.state=g.value_id 
    where Convert(varchar(20),c.OutCard_Time,120) not in (select Convert(varchar(20),d.Card_SaleTime,120) from t_Consume_Info d) 
    and c.Sell_Type in (1,2) and f.dictionary_id=7 and g.dictionary_id=11 '
                set @QuerySql=@QuerySql+'group by c.ICCard_No,c.ICCard_Glide_Id,a.Tourist_name,f.dictionary_value,a.Tourist_Sex,a.Tourist_birthday,g.dictionary_value,a.Tourist_Identity 'exec(@QuerySql)
    为什么提示没有声明@GetUserInfo啊?====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  3.   

    execute sp_executesql @QuerySql,'@GetUserInfo varchar(50)',@GetUserInfo
      

  4.   

    我声明的@GetUserInfo是个表类型的变量====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2