ORACLE多表模糊查询问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE多表模糊查询问题相关的知识,希望对你有一定的参考价值。

SELECT a.desc, (SELECT name FROM type WHERE id = a.t_id) as tname FROM item a这条SQL语句能够正常执行有查询结果,我想把id = a.t_id中的 '=' 改为 'like',我直接写作id like a.t_id查询不到结果,请问该怎么解决,谢谢。不胜感激!

参考技术A LZ 的模糊查询是不是这样。选出TYPE表中ID 包括ITEM表的T_ID字符即可。但这样有一个问题,如果如果TYPE表中的ID有多个包括ITEM表的t_id列就会出现错误。因为一行ITEM表会对应多个TYPE记录。可以用LEFT JOIN 去关联SELECT A.DESC, B.NAME AS TNAME FROM ITEM A LEFT JOIN TYPE B ON INSTR(B.ID, A.T_ID) > 0如果可以确定模糊查询时只能在TYPE中查询出一条记录SELECT A.DESC,(SELECT NAME FROM TYPE WHERE INSTR(ID,A.t_ID) > 0) as tname FROM ITEM A 参考技术B 这个地方可能不能用like,因为oracle会把a.t_id当成你要匹配的对象,而type表里的id又没有a.t_id这样的值,所以查不到结果。 参考技术C like是针对有共同特点的字符串进行查询,比如,要查询所有04开头的字符串,可以这样写:like '04%',注意,"%"这个通配符一定不能少。

以上是关于ORACLE多表模糊查询问题的主要内容,如果未能解决你的问题,请参考以下文章

在ORACLE中怎么对LONG类型字段的模糊查询

如何对ORACLE里的CLOB字段进行模糊查询?

SQL多表模糊查询

关于sql模糊查询(全字段)

关于mysql的多表联合模糊查询问题

ASP多值多字段模糊查询分页问题