比较,刺手的存储过程?
例子1:
表A:
TABLE_RIGHT_ID 授权表表ID
TABLE_NO 表编号
TABLE_NAME 表名
TABLE_REC_ID 表记录ID
PEOPLE_SET_TYPE 被授权人员集类型
PEOPLE_SET_ID1 人员集ID1
PEOPLE_SET_ID2 人员集ID2
PEOPLE_SET_ID3 人员集ID3
PEOPLE_SET_ID4 人员集ID4
REC_RIGHT_TYPE 权限方式字
REC_READ_RIGHT_WORD 读权限字
REC_WRITE_RIGHT_WORD 写权限字
PRI 优先级.
表B:
TABLE_ID 表物理ID,
ID ID,
NAME 名称,
AGE 年龄
OWNER_TYPE 所有人类型
OWNER_ID 所有人ID
REC_USER_TYPE 经办人类型
REC_USER_ID 经办人ID
REC_USER_DEP_ID2 经办人系统ID
REC_USER_DEP_ID 经办人组织ID
REC_USER_DUTY 经办人职务状态
USE_TYPE 使用类型
USER_TYPE_2 使用子类型
USE_DEP_TYPE 使用部门类型
USE_DEP_ID 使用部门ID
VERSION 版本号
REC_DATETIME 录入时间
PUB_IN_RIGHT_TYPE 内权限方式
PUB_OUT_RIGHT_TYPE 外权限方式
PUC_DEPART_TYPE 公开范围类型
PUC_DEPART_ID1 公开范围D1
PUC_DEPART_ID2 公开范围D2
PUC_IN_READ_RIGHT_WORD 公开内读权限字
PUC_IN_WRITE_RIGHT_WORD2 公开内写权限字
PUC_OUT_READ_RIGHT_WORD 公开外读权限字
PUC_OUT_WRITE_RIGHT_WORD 公开外写权限字
使用server2005服务器
大概得出的输出的结论样子基本展示为:
1 1 zhangsan 21 2 1 0 0 0 0 0 0 0 0 0 0 0000-00-00 00:00:00 -11 0 2 1 1 [BLOB - 0 字节] [BLOB - 0 字节] [BLOB - 0 字节] [BLOB - 0 字节] 3 1 test 1 2 1 1 [BLOB - 0 字节] [BLOB - 0 字节] 8
3 2 wangwu 20 2 1 0 0 0 0 0 0 0 0 0 0 0000-00-00 00:00:00 -11 1 2 1 1 [BLOB - 0 字节] [BLOB - 0 字节] [BLOB - 0 字节] [BLOB - 0 字节] NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL [BLOB - NULL] [BLOB - NULL] NULL
SELECT *
FROM (
SELECT *
FROM (
SELECT c. * , r. *
FROM RIGHT_TEST AS c
LEFT JOIN authorize_table AS r ON r.TABLE_NO =1
AND c.TABLE_ID = r.TABLE_REC_ID
AND (
(
$$_PUB_IN_RIGHT_TYPE <= -10
AND $$_PUC_DEPART_TYPE =2
AND $$_PUC_DEPART_ID1 =1
)
OR (
$$_PUB_out_RIGHT_TYPE <= -10
AND $$_PUC_DEPART_TYPE =2
AND $$_PUC_DEPART_ID1 !=1
)
)
ORDER BY r.PRI DESC
) AS z
GROUP BY z.TABLE_ID
ORDER BY z.TABLE_ID ASC
) AS s
WHERE (
$$_PUB_IN_RIGHT_TYPE >0
AND $$_PUC_DEPART_TYPE =2
AND $$_PUC_DEPART_ID1 =1
)
OR (
$$_PUB_OUT_RIGHT_TYPE >0
AND $$_PUC_DEPART_TYPE =2
AND $$_PUC_DEPART_ID1 !=1
)
OR (
$$_PUB_IN_RIGHT_TYPE <= -10
AND PEOPLE_SET_TYPE =2
AND PEOPLE_SET_ID1 =1
AND REC_RIGHT_TYPE >0
)
OR (
$$_PUB_IN_RIGHT_TYPE <= -11
AND PEOPLE_SET_TYPE IS NULL
)