我需要一个sql查询,以便根据基于类别字段的某些条件从表中选择某些项目。
例如,考虑一个人员列表,我从数据库中提取特定年龄段的人员。我想检查结果是否至少包含多个类别中每个类别的结果。如果不是,我想通过扩展年龄组来修改年龄组并再次检查结果。重复此过程,直到获得一个年龄组,并且每个年龄组都有一个结果。现在,我通过分析结果并修改sql查询来完成此操作。因此,发送了许多sql选择查询。最有效的方法是什么?
我正在使用jdbc从Java程序调用选择查询。我正在使用mysql数据库。

最佳答案

您需要按照以下步骤创建过程或函数,可以轻松解决问题

create procedure GetPeople
     @condition varchar(max)
    as

    begin
    declare @affectRec int

    SET @ParmDefinition = N'@cound nvarchar(max), @cout int output';

      declare @@query nvarchar(max)
      set @query= 'select * from people where  @cond;  set @cout=@@rowcount'

      exec @query

     EXECUTE sp_executesql
@query
,@ParmDefinition
,@cond = @condition
,@count = @affectRec output
;


      if @affectRec > 0
      begin
       return;
      end
      else
      begin
       //update condition code
       exec GetPeople(condition)
      end

end

10-07 19:24
查看更多