今日无事,闲来去往上商场逛逛,哈哈 节日又要到了吧。
发现在网上的查询中,有些字段是由用户自己选择,有时候是一个条件都没有,这样的实现在逻辑上是很容易实现的,只是,着手做的时候,却难度重重,今日无事,变自己写了个存储过程,经验证也小有成效,拿出来与大家分享,希望大家指导。
1 create proc sp_selec
2 @a varchar(10) = null,
3 @b varchar(20) = null,
4 @c varchar(10) = null,
5 @d varchar(10) = null
6 as
7 begin
8 select * from Student where
9 stu_Id = isnull(@a,stu_Id) and
10 stu_Name = isnull(@b,stu_Name) and
11 stu_Gender = isnull(@c,stu_Gender) and
12 stu_Age = isnull(@d,stu_Age)
13 end
go
--调用,任意的输入一个值,系统会自动辨别后进行查询,但是顺序一定要一样
exec sp_selec @c='女',@d=20
此处,Student是一张表,包含字段 stu_Id(学号),stu_Name(姓名),stu_Gender(性别),stu_Age(年龄)。
定义四个变量,接收表中的各个字段,当某个字段为空时,会自动跳转到下个字段,且不会影响到整体的操作。而且最后,执行存储过程的时候,要相互对应某字段,于是乎变实现了抽选字段,而实现字段间的随机组合查询。