关于REGEXP_LIKE的用法

如题:

    此下两个sql,主要是第二个,第一个主要是用来转换,如' 主包 内盘    配方'转换成'(主包|内盘|配方)',为了实现多属性查询,然后怎么可以在finereport中实现此两个sql的功能,最好是可以写在一个数据库查询里面

     --输入调整
     SELECT chr(39)||chr(40)||REPLACE(TRIM(REGEXP_REPLACE(' 主包 内盘    配方 ', ' [ ]+', ' ')), ' ', '|')||chr(41)||chr(39)
     FROM DUAL 


   --查询内容
   select tc_pda16,tc_pda13,tc_pdb_file.* from (
 select tc_pdc01,tc_pdc02,tc_pdc03,count(tc_pdc04) c from tc_pdc_file
    where  REGEXP_LIKE(tc_pdc18,'(主包|内盘|配方)')
    group by tc_pdc01,tc_pdc02,tc_pdc03
    ) ,tc_pdb_file,tc_pda_file
    where c =3 and tc_pdc01=tc_pdb01 and tc_pdc02=tc_pdb02 and tc_pdc03=tc_pdb03
         and tc_pda01= tc_pdb01 and tc_pda02=tc_pdb02

求教,感谢。


尤克lili 发布于 2018-12-12 11:39
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
axingLv6专家互助
发布于2018-12-12 11:51(编辑于 2018-12-12 13:49)
select tc_pda16,tc_pda13,tc_pdb_file.* from (
 select tc_pdc01,tc_pdc02,tc_pdc03,count(tc_pdc04) c from tc_pdc_file 
    where  REGEXP_LIKE(tc_pdc18,REPLACE(TRIM(REGEXP_REPLACE('${参数名字}', ' [ ]+', ' ')), ' ', '|')) 
    group by tc_pdc01,tc_pdc02,tc_pdc03
    ) ,tc_pdb_file,tc_pda_file 
    where c =3 and tc_pdc01=tc_pdb01 and tc_pdc02=tc_pdb02 and tc_pdc03=tc_pdb03
         and tc_pda01= tc_pdb01 and tc_pda02=tc_pdb02


  • 尤克lili 尤克lili(提问者) 是的
    2018-12-12 11:58 
  • axing axing 回复 尤克lili(提问者) 那条件是怎么设置的,文本框直接输入?直接用复选框设置好选项然后设置分隔符试试
    2018-12-12 12:00 
  • 尤克lili 尤克lili(提问者) 回复 axing 复选框不可行的,只要在文本框中直接输入
    2018-12-12 12:58 
  • axing axing 回复 尤克lili(提问者) 那就直接套进去吧,看上面
    2018-12-12 13:48 
  • 尤克lili 尤克lili(提问者) 回复 axing 谢谢,谢谢,我一开始就拘泥于单引号和括号,就想通过asi码加,然后一直不能出现效果,感谢感谢。
    2018-12-12 14:11 
最佳回答
0
touyuan001Lv6中级互助
发布于2018-12-12 11:53
  • 3关注人数
  • 341浏览人数
  • 最后回答于:2018-12-12 13:49
    请选择关闭问题的原因
    确定 取消
    返回顶部