高分求一SQL语句。高手请进(50分)

  • 主题发起人 主题发起人 多多帮助
  • 开始时间 开始时间

多多帮助

Unregistered / Unconfirmed
GUEST, unregistred user!
有姓名,年龄,班级,学校<br>现在想查,如果选中姓名就查询姓名,选中班就查班。如果全选就全查。用存储过程怎么写。要求简单,最好一句搞定
 
你的表述不是很清楚啊,详细点
 
你不是刚问过一个查询姓名和年龄的存储过程吗?<br>这个和那个差不多阿,只是多了一个查询条件而已,自己改一下就行了,
 
我想要的是存储过程的语句。<br>就是多条件查询怎么实现。多谢
 
对于字符型字段,有一个很方便的方法,假设传递的参数名称是 @Name<br>Select * From xxxx Where 姓名 like '%'+isNull(@Name,'')+'%' <br>此时无论是你传递什么值,都能达到你想要的结果。<br><br>对于数值型字段,只能通过判断语句,构造了<br><br>Create procedure xxxx &nbsp;<br>declare &nbsp; @Name varchar(20)<br>declare &nbsp; @Age int<br>as<br>Set Nocount on<br>Declare @Sql varchar(4000)<br>Set @Sql='Select * From xxxx Where 姓名 like ''%'+isNull(@Name,'')+'%''' + <br>&nbsp; &nbsp; Case When isNull(@Age,0) = 0 then ' ' else ' And 年龄='+cast(@Age as varchar(20)) end<br><br>Exec(@Sql)<br><br>go
 
Declare @Sql varchar(4000)<br>这样效率会不会低呀。谢谢<br>like '%'+isNull(@Name,'')+'%'这个能不能用varchar(8)='%'代替呢
 
你这个小存储过程就不要考虑什么效率了吧 &nbsp;在说varchar(4000)效率也不会低 &nbsp;有不是char
 
后退
顶部