22,298
社区成员
发帖
与我相关
我的任务
分享
SELECT r.Module_id, max(r.Value), u.User_id FROM ErpRoleModule AS r INNER JOIN ErpUserRole AS u ON r.Role_id = u.Role_id group by Module_id,user_id
SELECT r.Module_id, r.Value & 1 as vi,r.Value & 2 as ed,r.Value & 4 as ad,r.Value & 8 as de,r.Value & 16 as Ch, u.User_id FROM ErpRoleModule AS r INNER JOIN ErpUserRole AS u ON r.Role_id = u.Role_id order by User_id ,Module_id
--SQL2000/2005字符串拆分为列表通用函数
IF OBJECT_ID('f_getstr') IS NOT NULL
DROP FUNCTION f_getstr
GO
CREATE FUNCTION f_getstr(
@s NVARCHAR(4000), --待分拆的字符串
@flag NVARCHAR(10)='' --数据分隔符
)RETURNS @r TABLE(col NVARCHAR(1000))
AS
BEGIN
IF ISNULL(@flag,'')='' AND LEN(ISNULL(@flag,'')+'a')=1
INSERT @r
SELECT SUBSTRING(@s,number+1,1)
FROM master..spt_values
WHERE TYPE='p' and number<LEN(@s+'a')-1
ELSE
INSERT @r
SELECT SUBSTRING(@s,number,CHARINDEX(@flag,@s+@flag,number)-number)
FROM master..spt_values
WHERE TYPE='p' and number<=len(@s+'a')
--AND SUBSTRING(@flag+@s,number,1)=@flag --用此条件或下面的条件均可
AND CHARINDEX(@flag,@flag+@s,number)=number
RETURN
END
GO