请教参数传入后,再判断

sql里面写了三段union all拼起来的

然后现在有个需求是这样的:

参数的名称org_code ,现在用户假如在参数里面有10个名称传入到sql里面去,这个时候 sql里面的三段语句要求是第一段和第二段的sql接受这10个名称,第三段的sql只要其中的三个名称(不能固定写死。因为有可能有些人是没有这三个固定的)

select * from test1 where 1=1 and org_code in (100,1002,1003,1004,1005,7009,8009,9009,3003,4030) union all select * from test2 where 1=1 and org_code in (100,1002,1003,1004,1005,7009,8009,9009,3003,4030) union all select * from test3 where 1=1 and org_code in (1004,1005,4030) /*最后这一段只要这三个,但是这三个不能写法,有可能是A人员它的权限有这三个公司,但是 B人员没有这三个公司,它只有一个公司,那么这个时候第三段的org_code in(1005)这样了*/

CD20160914 发布于 2021-4-25 09:07 (编辑于 2021-4-25 09:07)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-4-25 09:11

以你的例子继续

A\B人员是怎么判断他们的权限的??

最后 in 括号里面的要用单引号in('100','1002','003')

  • CD20160914 CD20160914(提问者) 权限是单独做了一个权限表的。他们登陆后下拉框的编号就是他们的权限,但是最后一段我现在没有好办法来解决,怎么让传下去的参数的时候,这三个是固定要求的org_code in (1004,1005,4030) ,但是有可能他们的编号只有1004 有可能只有1005与4030。。所以我在第三段不能固定把它写固定了。要动态判断他们的编码在不在这三个中有。
    2021-04-25 09:14 
  • Z4u3z1 Z4u3z1 回复 CD20160914(提问者) 那简单了 我简单写你自己改一下 SELECT * FROM ( SELECT * FROM A UNON ALL SELET * FROM B UNION ALL SELECT * FROM C ) T WHERE T.org_code in (传入的参数) AND T.org_code in (权限部门)
    2021-04-25 09:28 
  • Z4u3z1 Z4u3z1 回复 CD20160914(提问者) 突然想起,我好像把你需求理解错了。是不? 你只需要第三条select进行权限判断,那sql 改为 select * from test1 where 1=1 and org_code in (100,1002,1003,1004,1005,7009,8009,9009,3003,4030) union all select * from test2 where 1=1 and org_code in (100,1002,1003,1004,1005,7009,8009,9009,3003,4030) union all select * from test3 where 1=1 and org_code in (1004,1005,4030) and org_code in (100,1002,1003,1004,1005,7009,8009,9009,3003,4030)
    2021-04-26 08:42 
最佳回答
0
axingLv6专家互助
发布于2021-4-25 09:34

select * from test1 where 1=1 

and org_code in ('${参数}') 

union all 

select * from test2 where 1=1 

and org_code in ('${参数}') 

union all 

select * from test3 where 1=1 

and org_code in ( select org_code from 权限表 where org_code in ('${参数}')) 

  • 2关注人数
  • 456浏览人数
  • 最后回答于:2021-4-25 09:34
    请选择关闭问题的原因
    确定 取消
    返回顶部