位字段上MAX运算符的替代方案

Mar*_*acz 19 sql group-by sql-server-2008

我的表具有几个位字段的权限.我想在此表中对行进行分组,并获得具有最高权限的结果.所以用这个表:

UserId, Permisssion1,Permission2, Permisssion3 
Run Code Online (Sandbox Code Playgroud)

这对于行
13,1,0,0
13,0,1,0

我想得到:
13,1,1,0

问题是运算符MAX不能在位字段上工作.如何以有效的方式做到这一点?(不使用CASE)

gbn*_*gbn 48

就像...一样简单

MAX(CAST(Permisssion1 AS tinyint))
Run Code Online (Sandbox Code Playgroud)

你没有很多其他选择......