关于sql位运算的问题 (详情看内容)
我检索数据这样
姓名 年龄 所对栏目 栏目权限
王 28 系统管理 01111
王 28 系统管理 01001
王 28 人员管理 01111
我希望得到的结果是
王 28 系统管理 01001
王 28 人员管理 01111
即如果所对栏目相同就对栏目权限字段做位运算
有办法实现吗???
------解决方案--------------------declare @t table(姓名 varchar(10),年龄 int,所对栏目 varchar(10),栏目权限 varchar(10))
insert into @t select '王 ',28, '系统管理 ', '01111 '
insert into @t select '王 ',28, '系统管理 ', '01001 '
insert into @t select '王 ',28, '人员管理 ', '01111 '
select
姓名,年龄,所对栏目,
min(substring(栏目权限,1,1))+
min(substring(栏目权限,2,1))+
min(substring(栏目权限,3,1))+
min(substring(栏目权限,4,1))+
min(substring(栏目权限,5,1)) as 栏目权限
from
@t
group by
姓名,年龄,所对栏目
/*
姓名 年龄 所对栏目 栏目权限
---------- ----------- ---------- ----------
王 28 人员管理 01111
王 28 系统管理 01001
*/
------解决方案--------------------相同的两条记录的各个位上取最小?