日期:2014-05-17  浏览次数:20804 次

一条复杂的sql查询语句,不知道怎么写好点?????
我要根据参数 REVIEWER 来查出相应的数据,

参数格式是:DEPT_BMLD_BSTA

例如:
SQL code


select * from T_TSG_REVIEWHIS where REVIEWER='DEPT_BMLD_BSTA';




问题是,(假如参数比作: A_B_C ) 

A是固定的,B和C 是要传进来的参数,且B和C的个数是一个或多个

B 可以这样得到: select B from Table1 where userNo='e001'; (返回一个或多个值)

C 可以这样得到: select C from Table1 where userNo='e001'; (返回一个或多个值)

子查询解决得了吗?

这语句该怎么写好点呢?

前提,不在service类中处理!


此语句是基于 sqlmap 的sql





------解决方案--------------------
是这样的么 传值就查询 空值就相当于1=1

SQL code

--字段COL1、2、3 参数a b c
select * 
from T_TSG_REVIEWHIS 
where REVIEWER='DEPT_BMLD_BSTA' and col1=a and (col2=b or b is null) and (col3=c or c is null)

------解决方案--------------------
还是不大了解多个传值 要怎么取? 如果传值是 1 1,2 3,4
那就是相当于这个? 应该也不对吧?

SQL code
select * from T_TSG_REVIEWHIS where REVIEWER='1_1_3'
union all
select * from T_TSG_REVIEWHIS where REVIEWER='1_2_4';