当前位置:  数据库>oracle

Oracle 解决匹配的几种方法

    来源: 互联网  发布时间:2017-04-02

    本文导语: //数据   with ta as(        select 1 id,'f1,f2' fid from dual union all        select 2,'f4,f5,f6' from dual)   ,tb as(       select 'f1' fid,'name1' fname from dual union all       select 'f2','name2' from dual union all       select 'f3','name3' from dual union all...

//数据  
with ta as(  
     select 1 id,'f1,f2' fid from dual union all  
     select 2,'f4,f5,f6' from dual)  
,tb as(  
    select 'f1' fid,'name1' fname from dual union all  
    select 'f2','name2' from dual union all  
    select 'f3','name3' from dual union all  
    select 'f4','name4' from dual union all  
    select 'f5','name5' from dual union all  
    select 'f6','name6' from dual)  
//结果:  
        ID FID      FNAME  
---------- -------- --------------------------------------------  
         1 f1,f2    name1,name2  
         2 f4,f5,f6 name4,name6,name5  
//问题分析:  
//这是一个字符串匹配问题,  
//我们都知道,匹配就是在str1字符串中查找是否存在str2字符串,  
//并返回一个标识,标记str2是否存在于str1里面;  
//Oracle提供了一些函数供我们实现匹配功能:  
//字符函数instr,contains,正则表达式函数regexp_instr;  
//我们还可以通过like模糊匹配查询。  
//所以上面问题的解决方法有下面几种,  
//如果您还能想到更好的方法,请赐教!谢谢!  
//方法一  
select ta.id id,  
       ta.fid fid,  
       wm_concat(tb.fname) fname  
from ta,tb  
where instr(ta.fid,tb.fid)>0  
group by ta.id,ta.fid;  
--  
//方法二  
select ta.id id,  
       ta.fid fid,  
       wm_concat(tb.fname) fname  
from ta,tb  
where ta.fid like '%'||tb.fid||'%' 
group by ta.id,ta.fid;  
--  
//方法三  
select ta.id id,  
       ta.fid fid,  
       wm_concat(tb.fname) fname  
from ta,tb  
where regexp_instr(ta.fid,tb.fid)>0  
group by ta.id,ta.fid; 















































    
 
 

您可能感兴趣的文章:

  • oracle中的空类型与c语言的空类型相匹配吗?
  • 解决oracle用户连接失败的解决方法
  • Oracle Connect to Idle Instance解决方法
  • Linux下安装Tomcat后与Oracle冲突的解决
  • linux下安装oracle,出现没有权限的报警,怎么解决?
  • 安装Oracle加载数据库错误areasQueries的解决
  • Oracle 11g 相关工具netca,dbca乱码之解决
  • Linux安装Oracle 11时报错DISPLAY解决方案
  • Linux下Oracle安装时遇到的问题及解决
  • 简单的Oracle小问题解决
  • oracle中文乱码解决的办法
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • 安装oracle9时,安装界面的字体无法正确显示,怎么解决啊???
  • Oracle安装后8080和80端口被占用的解决办法
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • oracle 实际值超过数据库某个字段指定长度报错解决
  • Linux下命令行启动oracle时报错的解决
  • 急!急!jbuilder中新建oracle数据源的问题,解决立即给分!
  • Linux系统下安装Oracle X11错误解决办法
  • Linux中安装Oracle乱码问题的解决
  • Oracle与JSDK4.0环境变量冲突,如何解决(在线等待)?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • ORACLE 中修改用户密码的方法
  • Linux下完全卸载ORACLE 10G的方法
  • 将Oracle 8i数据成功移植Oracle 10g的方法
  • oracle增加表空间大小两种实现方法
  • linux下用ODBC链接Oracle怎么连啊?跪求具体方法!!!
  • Linux系统下查看oracle SID的方法
  • oracle 彻底删除方法
  • window中oracle环境变量设置方法分享
  • Oracle 忘记密码的找回方法
  • Oracle中serveroutput参数一次设置永久保存方法
  • Oracle指定IP访问数据库方法
  • Oracle SID存在解決方法
  • 登录oracle数据库时密码忘记的解决方法
  • PB7 连接 Oracle 的设置方法
  • Oracle删除后不能重新安装的解决方法
  • oracle删除文件后数据库启动不了的处理方法
  • 跪求UNIX 下C用OCI连接ORACLE方法。高手进!!!
  • 彻底删除Oracle数据库的方法
  • oracle drop table(表)数据恢复方法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3