求按条件查找的Sql语句
 假设有这样一张表   
 代码,   姓名,年龄,政治面目,家庭人口数 
 001         张三      34         群众                        5 
 002         李四      48         党员                        4 
 004         王五      61         党员                        6 
 005         陈酒      21         团员                        4 
 006         李二      27         党员                        2      
 我现在有几个审核公式(可动态添加的),要求找出并标注审核结果; 
 一、年龄在30及以上; 
 二、政治面目是党员 
 三、家庭人口数大于4 
 如果用程序只能每条的按这种条件检测,但是数据量特别大,速度慢, 
 如果用SQL怎么做:   
 根据上表生成审核结果应如下: 
 代码,   姓名,         结果 
 001         张三            年龄在30及以上,家庭人口数大于4 
 002         李四            年龄在30及以上,政治面目是党员 
 004         王五            年龄在30及以上,政治面目是党员,家庭人口数大于4 
 006         李二            政治面目是党员
------解决方案----------------------建立测试环境 
 create table #tb(代码 varchar(5),姓名 varchar(5),年龄 int,政治面目 varchar(5),家庭人口数 int) 
 insert #tb(代码,姓名,年龄,政治面目,家庭人口数) 
 select  '001 ', '张三 ', '34 ', '群众 ', '5 ' union all 
 select  '002 ', '李四 ', '48 ', '党员 ', '4 ' union all 
 select  '004 ', '王五 ', '61 ', '党员 ', '6 ' union all 
 select  '005 ', '陈酒 ', '21 ', '团员 ', '4 ' union all 
 select  '006 ', '李二 ', '27 ', '党员 ', '2 ' 
 go 
 --执行测试语句 
 select t.代码,t.姓名,t.年龄,t.政治面目,t.家庭人口数 
       ,case when 年龄 > = 30 then  '年龄在30及以上, ' else  ' ' end 
       +case when 家庭人口数 >  4 then  '家庭人口数大于4, ' else  ' ' end 
       +case when 政治面目 =  '党员 ' then  '政治面目是党员, ' else  ' ' end as 审核结果 
 from #tb t 
 go 
 --删除测试环境 
 drop table #tb 
 go 
 /*--测试结果 
 代码    姓名    年龄          政治面目  家庭人口数       审核结果                                            
 ----- ----- ----------- ----- ----------- ----------------------------------------------  
 001   张三    34          群众    5           年龄在30及以上,家庭人口数大于4, 
 002   李四    48          党员    4           年龄在30及以上,政治面目是党员, 
 004   王五    61          党员    6           年龄在30及以上,家庭人口数大于4,政治面目是党员, 
 005   陈酒    21          团员    4            
 006   李二    27          党员    2           政治面目是党员,   
 (5 row(s) affected)   
 */   
------解决方案--------------------create table t1(代码 varchar(8),姓名 varchar(8),年龄 int,政治面目 varchar(8),家庭人口数 int) 
 insert into t1 select  '001 ', '张三 ',34, '群众 ',5 
 insert into t1 select  '002 ', '李四 ',48, '党员 ',4 
 insert into t1 select  '004 ', '王五 ',61, '党员 ',6 
 insert into t1 select  '005 ', '陈酒 ',21, '团员 ',4 
 insert into t1 select  '006 ', '李二 ',27, '党员 ',2  
 go   
 --col描述用于与t1匹配的字段名,type描述col对应字段类型,0为字符类型/1为数字类型 
 --operate描述与条件匹配的类型,0: "= "/1: ">  "/2: " < ",根据需求还可以增加 
 create table t2(code int,col varchar(10),type int,operate int,value varchar(20),[desc] varchar(40)) 
 insert into t2 select 1, '年龄 '      ,1,1,   '30