前面跟一个参数过来,用户选择的@orderby int
假设orderby的值为1,执行order by price1 desc
orderby值为2时,执行order by price1 asc
orderby 值为空时,即用户不选择条件排序,那么order by id descCREATE procedure ProList
@myname varchar(100),
@orderby int
as
select id,myname,price from [pro]
where online=1
and myname like '%'+@myname+'%'这儿排序怎么写GO
假设orderby的值为1,执行order by price1 desc
orderby值为2时,执行order by price1 asc
orderby 值为空时,即用户不选择条件排序,那么order by id descCREATE procedure ProList
@myname varchar(100),
@orderby int
as
select id,myname,price from [pro]
where online=1
and myname like '%'+@myname+'%'这儿排序怎么写GO
CREATE procedure ProList
@orderby int
as
begin
select top 10 id,type,subject from [table1] order by case @orderby when 1 then id when 2 then type end desc
end
CREATE procedure ProList
@orderby int
as
begin
select top 10 id,type,subject from [table1] order by case @orderby when 1 then id when 2 then type end desc
end
@myname varchar(100),
@orderby int
as
select id,myname,price from [pro]
where online=1
and myname like '%'+@myname+'%' --这儿排序怎么写
order by case when @orderby is null then id else price1 end descGO
orderby的值为1,执行order by price1 desc
orderby值为2时,执行order by price1 asc
orderby 值为空时,即用户不选择条件排序,那么order by id desc
@myname varchar(100),
@orderby int
as
declare @s varchar(5000)
set @s='select id,myname,price from [pro] where online=1 and myname like '''+ '%'+@myname+'%'''
if @orderby=1
exec(@s+' order by price1 desc')
else if @orderby=2
exec(@s+ ' order by price1 asc')
else
exec (@s+'order by id desc')
@myname varchar(100),
@orderby int
as
begin
if @orderby=1
select id,myname,price from [pro]
where online=1
and myname like '%'+@myname+'%'
order by price1 desc
else if @orderby=2
select id,myname,price from [pro]
where online=1
and myname like '%'+@myname+'%'
order by price1
else
select id,myname,price from [pro]
where online=1
and myname like '%'+@myname+'%'
order by id desc
end
go
@bid varchar(20),
@sid varchar(20),
@myname varchar(100),
@myitem varchar(100),
@price_1 int,
@price_2 int,
@commend int,
@orderby int
as
declare @s varchar(5000)
set @s='select id,myname,img,price1,commend,online,hit,addtime,kucun from [pro]
where online=1
and ('','')+bid like '+'%,'+@bid+'%''
and ('','')+sid like '+'%,'+@sid+'%''
and myname like '+'%'+@myname+'%''
and myitem like '+'%'+@myitem+'%''
and price1>=(case @price_1 when 0 then price1 else @price_1 end)
and price2<=(case @price_2 when 0 then price2 else @price_2 end)
and commend=@commend'
if @orderby=1
exec(@s+' order by price1 desc')
else if @orderby=2
exec(@s+ ' order by price1 asc')
else
exec (@s+'order by id desc') 这是我的全部代码。
这样写后,提示:不允许对具有不止一条 SELECT 语句的远程存储过程或存储过程使用服务器游标。请使用默认结果集或客户端游标。我在分页那儿调用:set rs=cmd.execute 这行提示错误。
dobear_0922,你那样写,我的代码是不是会很多?
@bid varchar(20),
@sid varchar(20),
@myname varchar(100),
@myitem varchar(100),
@price_1 int,
@price_2 int,
@commend int,
@orderby int
as
select id,myname,img,price1,commend,online,hit,addtime,kucun from [pro]
where online=1
and (',')+bid like '%,'+@bid+'%'
and (',')+sid like '%,'+@sid+'%'
and myname like '%'+@myname+'%'
and myitem like '%'+@myitem+'%'
and price1>=(case @price_1 when 0 then price1 else @price_1 end)
and price2<=(case @price_2 when 0 then price2 else @price_2 end)
and commend=@commend
order by (case @orderby when 1 then price1 when 2 then id else addtime end) desc
GO这样执行正确的,可是达不到我想要的效果,price asc.哎
Print @S
看看有沒有語法錯誤