我有一个表的查询,它将输出返回为
AccessRightID NodeID NodeName CanAdd CanEdit CanDelete CanView
1 2 Customer 0 0 0 1
2 2 Customer 1 1 0 0
3 2 Customer 0 0 0 0
4 2 Customer 0 0 0 0
现在我想要组合并只获得一行。不需要AccessRightId。 最终的输出应该是。
NodeID NodeName CanAdd CanEdit CanDelete CanView
2 Customer 1 1 0 1
,即如果任何值包含1则为1,否则为0。
plz建议我是sql的新手。
答案 0 :(得分:1)
试试这个:
SELECT
NodeId
,NodeName
,max(convert(int,CanAdd))
,max(convert(int,CanDelete))
,max(convert(int,CanEdit))
,max(convert(int,CanView))
from yourtable
group by
NodeId, NodeName
当然可以通过其他方式完成,但这听起来最简单。