动态查询 字段随机组合查询

  今日无事,闲来去往上商场逛逛,哈哈 节日又要到了吧。

    发现在网上的查询中,有些字段是由用户自己选择,有时候是一个条件都没有,这样的实现在逻辑上是很容易实现的,只是,着手做的时候,却难度重重,今日无事,变自己写了个存储过程,经验证也小有成效,拿出来与大家分享,希望大家指导。

 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(年龄)。

定义四个变量,接收表中的各个字段,当某个字段为空时,会自动跳转到下个字段,且不会影响到整体的操作。而且最后,执行存储过程的时候,要相互对应某字段,于是乎变实现了抽选字段,而实现字段间的随机组合查询。

原文地址:https://www.cnblogs.com/fuguoliang/p/4023416.html