首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一sql语句或函数。解决方法

2012-01-11 
求一sql语句或函数。现在有一个表UserIDAintBintCintDintEintFintGintHintIintJintKintLint这样十五个字段。

求一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

热点排行