求一sql语句或函数。
现在有一个表 
 UserID 
 A   int 
 B   int 
 C   int 
 D   int 
 E   int 
 F   int 
 G   int 
 H   int 
 I   int 
 J   int 
 K   int 
 L   int 
 这样十五个字段。 
 A至L中的数值有正有负。现在想取出所有从A到L中的正数相加大于2的,并且A到L中至少有一个大于2的记录   
 不知大家明白没有。 
 比如说 
 UserID 1 2 3 
 A      2 1 2 
 B      1 1 1 
 C   -1 1 0 
 D      0 0 0 
 E      0 0 0 
 F      0 0 0 
 G      0 0 0 
 H      0 0 0 
 I      0 0 0 
 J      0 0 0 
 K      0 0 0 
 L      0 0 0   
 像上面这个表中,我只能取出UserID是1和3的记录
------解决方案--------------------笨办法 
 游标,15个变量   
 删除不满足条件的行,呵呵
------解决方案--------------------select id from 
 ( 
 select id,  
 (case when A >  0 then a else 0 end ) + (case when B >  0 then B else 0 end ) .....+ (case when L >  0 then L else 0 end ) as sumall, 
 (case when A >  2 then 1 else 0 end ) + (case when B >  2 then 1 else 0 end ) .....+(case when L >  0 then 1 else 0 end ) as sum2 
 from tablename 
 )t where sumall >  2 and sum2 > = 1
------解决方案--------------------好 
 楼上的让我终于学会了CASE WHEN