if @gname='所有业务' begin select count(*) as s_count,s_gname=@gname from sp_operation where s_client=@cname and s_succdate>@strtime and s_succdate<@end end else declare @gnamedis nvarchar(100) select @gnamedis=gatename from sp_gallerylist where sp_gallerylist.id=convert(int,@gname) begin select count(*) as s_count,s_gname=@gnamedis from sp_operation where s_client=@cname and s_gallery=convert(int,@gname) and s_succdate>@strtime and s_succdate<@end end else 可以取到。但是if后面语句就取不到 那是没有符合条件的记录吧? 有的啊。 我在sql里执行可以取到数据的 @gname='所有业务' begin select count(*) as s_count,@gname =s_gnamefrom sp_operation where s_client=@cname and s_succdate>@strtime and s_succdate<@end end else begin declare @gnamedis nvarchar(100) select @gnamedis=gatename from sp_gallerylist where sp_gallerylist.id=convert(int,@gname) select count(*) as s_count,@gnamedis =s_gnamefrom sp_operation where s_client=@cname and s_gallery=convert(int,@gname) and s_succdate>@strtime and s_succdate<@end end