select a.doc_subject,
a.fd_number,
b.fd_fact_node_name,
to_char(b.fd_start_date,'yyyy-mm-dd hh24:mi:ss') as fd_start_date,
to_char(b.fd_finish_date,'yyyy-mm-dd hh24:mi:ss') as fd_finish_date,
b.fd_target_name
from km_review_main a,lbpm_history_node b,km_review_template c
where a.fd_id = b.fd_process_id
and a.fd_template_id = c.fd_id
and (to_char(b.fd_start_date,'yyyy-mm-dd') = to_char( '','yyyy-mm-dd') or '' is null)
and (to_char(b.fd_finish_date,'yyyy-mm-dd') = to_char( '','yyyy-mm-dd') or '' is null)
and trim(trim(both '''' from ('c.fd_name LIKE ''%' || replace('A,B,C,D',',','%'' OR c.fd_name LIKE ''%') || '%''')))
order by a.doc_subject,fd_start_date asc
这句trim(trim(both '''' from ('c.fd_name LIKE ''%' || replace('A,B,C,D',',','%'' OR c.fd_name LIKE ''%') || '%''')))哪里有问题,为什么整个语句执行报错无效的关系运算符。求大神帮忙!!!ABCD是传入的值,可能不止这几个。而且中间有逗号,之前想过用IN,但IN没有模糊查询所以只能where or来拼接。但我这样去执行,语句执行不了,不知道怎么解决。是Oracle
相当于是要拼接出这样:c.fd_name LIKE '%A%' OR c.fd_name LIKE '%B%' OR c.fd_name LIKE '%C%' OR c.fd_name LIKE '%D%'