我需要一个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