存储过程

create proc proc_inviteinfo
@invitesex varchar(4),
@inviteprofession varchar(40),
@inviteeducation varchar(40),
@invitegraduateshool varchar(40),
@invitehousehold varchar(40),
@invitelanguage varchar(20),
@invitedegree varchar(20),
@invitepositioin varchar(40),
@inviteworking varchar(40),
@invitedesirepay varchar(40),
@inviteexperience varchar(40),
@inviteworkornot varchar(10),
@invitedatee int,
@inviteagea int,
@inviteageb int
as
select
inviteid,invitename,invitage,inviteprofession,inviteworkornot,inviteexperience,inviteworking,invitepositioin,invitedate
from inviteinfo
where
invitesex=isnull(@invitesex,invitesex)
and inviteprofession=isnull(@inviteprofession,inviteprofession)
and inviteeducation=isnull(@inviteeducation,inviteeducation)
and invitegraduateshool=isnull(@invitegraduateshool,invitegraduateshool)
and invitehousehold=isnull(@invitehousehold,invitehousehold)
and invitelanguage=isnull(@invitelanguage,invitelanguage)
and invitedegree=isnull(@invitedegree,invitedegree)
and invitepositioin=isnull(@invitepositioin,invitepositioin)
and inviteworking=isnull(@inviteworking,inviteworking)
and invitedesirepay=isnull(@invitedesirepay,invitedesirepay)
and inviteexperience=isnull(@inviteexperience,inviteexperience)
and inviteworkornot=isnull(@inviteworkornot,inviteworkornot)
and invitage between @inviteagea and @inviteageb
and DATEDIFF(day, invitedate, getdate())<=@invitedatee
go
这个存贮过程对不对,
我有一个简历表,有20个属性,我要通过这20个属性中的任一个,任两个,任意3个......20个条件查寻简历信息,
实现该功能的存贮过程该怎么写呢?
我把所有的分都给你,大虾!!!!!!!!!
用if 我不是没想过,那得有20*19*18*...2种情况啊
可不可一说具体点啊,大哥,我是新手呢,,,
如果象这样写
select * from [table] where (id=@id) or (name=@name) 那我只能按一个条件查询了...对吗?
存贮过程我按楼上的重写了,还是不对啊....
我也试过出不了结果集啊,....
用or还是达不到要求啊,,,是能筛选出来,但是不是按要求查询的,真难,希望高手指点,小弟在线等..

第1个回答  2008-04-25
全部写成or

不用那么麻烦
select * from [table] where (id=@id) or (name=@name)

你试试这样的形式,是可以达到效果的

按上面这样的方式写是or,也就是满足其中任意一个就会被筛选出来,因为你的@变量不赋值是不会出错的,它会只筛选@变量赋值了的数据
第2个回答  2008-04-28
哪儿有那么多,存储过程中有 += 么