34,594
社区成员
发帖
与我相关
我的任务
分享
select *
from
(select *,ROW_NUMBER() over (order by ccode) as num
from CraneInfo
where Ctype=case when @type<>'-全部-' then @type else Ctype end
and Company= case when @firm<>'-全部-' then @firm else Company end
and RegionId=case when @province <>'-全部-' then @regionId else RegionId end
)as craneInfo2
where num between @start and @end
[/quote]
感觉这么写非常好select *
from
(select *,ROW_NUMBER() over (order by ccode) as num
from CraneInfo
where Ctype=case when @type<>'-全部-' then @type else Ctype end
and Company= case when @firm<>'-全部-' then @firm else Company end
and RegionId=case when @province <>'-全部-' then @regionId else RegionId end
)as craneInfo2
where num between @start and @end
declare @str varchar(1000)='';
declare @i1 int =0;
declare @i2 int =0;
set @str='select * from master.dbo.spt_values where 1=1'
if @i1=0
set @str=@str+' and [type]=''p'''
if @i2=0
set @str=@str+' and low >100'
--多少个条件就多少个if
Exec (@str)
if exists (select * from sys.objects where name='up_getCraneInfoSource')
drop proc up_getCraneInfoSource
go
create proc up_getCraneInfoSource
@type varchar(255),@firm varchar(255),@province varchar(255),@regionId varchar(255),@start varchar(255),@end varchar(255)
as
if (@type='-全部-' and @firm='-全部-' and @province='-全部-') --加载页面数据源
begin
select * from (select *,ROW_NUMBER() over (order by ccode) as num from CraneInfo)as craneInfo2 where num between @start and @end
end
else if(@type !='-全部-' and @firm='-全部-' and @province='-全部-') --按类型查询
begin
select * from (select *,ROW_NUMBER() over (order by ccode) as num from CraneInfo where ctype=@type)as craneInfo2 where num between @start and @end
end
else if(@type ='-全部-' and @firm!='-全部-' and @province='-全部-') --按公司查询
begin
select * from (select *,ROW_NUMBER() over (order by ccode) as num from CraneInfo where Company=@firm)as craneInfo2 where num between @start and @end
end
else if(@type ='-全部-' and @firm ='-全部-' and @province !='-全部-') --按区域查询
begin
select * from (select *,ROW_NUMBER() over (order by ccode) as num from CraneInfo where RegionId=@regionId)as craneInfo2 where num between @start and @end
end
else if(@type !='-全部-' and @firm !='-全部-' and @province ='-全部-') --按类型,公司查询
begin
select * from (select *,ROW_NUMBER() over (order by ccode) as num from CraneInfo where Ctype=@type and Company=@firm)as craneInfo2 where num between @start and @end
end
else if(@type !='-全部-' and @firm ='-全部-' and @province !='-全部-') --按类型,区域查询
begin
select * from (select *,ROW_NUMBER() over (order by ccode) as num from CraneInfo where Ctype=@type and RegionId=@regionId)as craneInfo2 where num between @start and @end
end
else if(@type ='-全部-' and @firm !='-全部-' and @province !='-全部-') --按公司,区域查询
begin
select * from (select *,ROW_NUMBER() over (order by ccode) as num from CraneInfo where Company=@firm and RegionId=@regionId)as craneInfo2 where num between @start and @end
end
else if(@type !='-全部-' and @firm !='-全部-' and @province !='-全部-') --按类型, 公司,区域查询
begin
select * from (select *,ROW_NUMBER() over (order by ccode) as num from CraneInfo where Ctype=@type and Company=@firm and RegionId=@regionId)as craneInfo2 where num between @start and @end
end
declare @str varchar(1000)='';
declare @i int =0;
set @str='select * from master.dbo.spt_values where 1=1'
if @i=0
set @str=@str+' and [type]=''p'''
Exec (@str)