首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL存储过程之变量使用(通过变量给SQL语句添加查询条件),该怎么解决

2012-01-30 
SQL存储过程之变量使用(通过变量给SQL语句添加查询条件)CREATEPROCEDUREtreeforsearch(@currentvarchar(20

SQL存储过程之变量使用(通过变量给SQL语句添加查询条件)
CREATE   PROCEDURE   treeforsearch   (@current   varchar(20),@name   varchar(20),@sex   varchar(20),@tel   varchar(20))   as
.....
select   id,name   from   Addresslist where     1=1   order   by   name
//这里如何通过变量@name等的值是否是为空,来改变上面的查询条件啊?
//如:if(@name!= " ")
//{
//   select   id,name   from   Addresslist where   1=1   and   name=@name   order   by   name     //变成这样的语句
//}
GO

[解决办法]
CREATE PROCEDURE treeforsearch (@current varchar(20),@name varchar(20),@sex varchar(20),@tel varchar(20)) as

declare @sql varchar(8000)
set @sql= 'select id,name from Addresslist where 1=1 '
if @name is not null
set @sql=@sql+ ' name= ' ' '+@name+ ' ' ' '
if @sex is not null
set @sql=@sql+ ' sex= ' ' '+@sex+ ' ' ' '
...
set @sql=@sql+ ' order by name '
exec (@sql)
go

热点排行
Bad Request.