TAB1
username(用户名) popedom(权限,第1位表删除、2位表添加、3位表修改、4位表审批、5位管理)
gt5070073 11111,10111,10111,10110 (注意:这个“,”个数不定)
....TAB2
itemname(项目名称) popedom_num(权限对应的第N个串)
新闻 1(这个对应的就是上面的"11111")
项目 2(这个对应的就是上面的"10111")
日志 3(这个对应的就是上面的"10111")
用户管理 4(这个对应的就是上面的"10110")
文件管理 5(这个上面没有就默认为"00000")
我现在就是要查“gt5070073”这个用户的TAB2表对应权限,要生成如下格式:
itemname(项目名称)删除 添加 修改 审批 管理
新闻 1 1 1 1 1
项目 1 0 1 1 1
日志 1 0 1 1 1
用户管理 1 0 1 1 0
文件管理 0 0 0 0 0
不知我说清楚了没有,大家帮帮我,看这个SQL乍样写
username(用户名) popedom(权限,第1位表删除、2位表添加、3位表修改、4位表审批、5位管理)
gt5070073 11111,10111,10111,10110 (注意:这个“,”个数不定)
....TAB2
itemname(项目名称) popedom_num(权限对应的第N个串)
新闻 1(这个对应的就是上面的"11111")
项目 2(这个对应的就是上面的"10111")
日志 3(这个对应的就是上面的"10111")
用户管理 4(这个对应的就是上面的"10110")
文件管理 5(这个上面没有就默认为"00000")
我现在就是要查“gt5070073”这个用户的TAB2表对应权限,要生成如下格式:
itemname(项目名称)删除 添加 修改 审批 管理
新闻 1 1 1 1 1
项目 1 0 1 1 1
日志 1 0 1 1 1
用户管理 1 0 1 1 0
文件管理 0 0 0 0 0
不知我说清楚了没有,大家帮帮我,看这个SQL乍样写
解决方案 »
- 如何提出sql远程连接的稳定性??
- 求助:把从数据库表中读取数据用图来表示
- 使用 aspnet_regsql 命令创建和配置数据库的问题
- 请教这个子查询应该怎么改?
- 求一条很简单的sql语句
- 如果基本游标不可滚动,SQL Server Mobile Edition 就不支持对 HasRows 属性的调用。
- FullText的优化目录填充 和索引的关系
- 大神救命,遇到数据库一直在执行怎么办?
- 急救啊,怎么在查询的时候,判断一个表a中3条(或多条)id相同的明细数据在表a中是否有相同的3条数据
- 字典排序和二进制排序有什么不同,那个比较好呢??(放100分)
- SQL安装问题?帮帮忙,
- SQL Server 2005 入门级问题
create table TAB1 (
username varchar(20),
itemname varchar(20),
del bit default 0,
[add] bit default 0,
[modify] bit default 0,
checkup bit default 0,
manage bit default 0
)insert into TAB1 values ('gt5070073', '新闻', 1,1,1,1,1)
insert into TAB1 values ('gt5070073', '项目', 1,0,1,1,1)
insert into TAB1 values ('gt5070073', '日志', 1,0,1,1,1)
insert into TAB1 values ('gt5070073', '用户管理', 1,0,1,1,0)
insert into TAB1 values ('gt5070073', '文件管理', 0,0,0,0,0)
select * from TAB1 where username='gt5070073'
1 gt5070073 新闻 11111
2 gt5070073 项目 10111
3 gt5070073 日志 10111
4 gt5070073 用户管理 10110
5 gt5070073 文件管理 10111
....这样就很容易实现SQL语句。
create table tab1(username varchar(100),popedom varchar(100) )
insert into tab1 values('gt5070073','11111,10111,10111,10110')
create table tab2 (temname varchar(100),popedom_num int)
insert into tab2 values('新闻',1)
insert into tab2 values('项目',2)
insert into tab2 values('日志',3)
insert into tab2 values('用户管理 ',4)
insert into tab2 values('文件管理',5)create function get_str(@username varchar(100),@i int)
returns varchar(100)
as
begin
declare @m int
declare @str varchar(100)
declare @rst varchar(100)
set @rst=''
set @m=1
select @str=popedom from tab1 where username=@usernamewhile @m<@i
begin
set @str=stuff(@str,1,6,'')
set @m=@m+1
end
if charindex(',',@str)=0
begin
set @rst=@str
end
else
begin
set @rst=substring(@str,0,charindex(',',@str))
end
if @rst =''
begin
set @rst='00000'
end
return @rst
end
select b.temname,isnull(substring(dbo.get_str(a.username,b.popedom_num),1,1),0),
isnull(substring(dbo.get_str(a.username,b.popedom_num),2,1),0),
isnull(substring(dbo.get_str(a.username,b.popedom_num),3,1),0),
isnull(substring(dbo.get_str(a.username,b.popedom_num),4,1),0),
isnull(substring(dbo.get_str(a.username,b.popedom_num),5,1),0)
from tab1 a,tab2 b
where a.username='gt5070073'结果temname
---------------------------------------------------------------------------------------------------- ---- ---- ---- ---- ----
新闻 1 1 1 1 1
项目 1 0 1 1 1
日志 1 0 1 1 1
用户管理 1 0 1 1 0
文件管理 0 0 0 0 0(所影响的行数为 5 行)
我用户表不可能产生那样多条记录吧
RE:Big_Gun(大枪)
我的项目是一个动态加的,我不可能一下子就全都想好了啊,在说客户的要求来做事啊
RE:csdnbanqiliao(燎)
这个结构是不行的,和Tongls(空中的风月)一样的问题