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

关于sql位运算的有关问题 (详情看内容)

2012-01-12 
关于sql位运算的问题 (详情看内容)我检索数据这样姓名年龄所对栏目栏目权限王28系统管理01111王28系统管理

关于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
*/
[解决办法]
相同的两条记录的各个位上取最小?

热点排行