oracle使用in子查询中用到replace函数问题
2012-07-20 16:17
295 查看
在oracle数据库中编写sql语句
select * from User where userName in ('a1','a2','a2')
这样是可以查询出结果,但如果使用
select * from User where userName in (
select regexp_replace('''a1#a2#a3''','#',''',''') as tt from dual
)
这样查没有结果
原因暂时认为是in子查询需要传集合,再此先提供解决办法
select t.* from "USER" t
where t.UserName in (
select REGEXP_SUBSTR('a1#a2#a3','[^#]+',1,ROWNUM) AS s
from dual
CONNECT BY ROWNUM<=3)
3为字符串length,字符串短的可以这样处理,长的涉及到效率问题,建议使用pl_table
select * from User where userName in ('a1','a2','a2')
这样是可以查询出结果,但如果使用
select * from User where userName in (
select regexp_replace('''a1#a2#a3''','#',''',''') as tt from dual
)
这样查没有结果
原因暂时认为是in子查询需要传集合,再此先提供解决办法
select t.* from "USER" t
where t.UserName in (
select REGEXP_SUBSTR('a1#a2#a3','[^#]+',1,ROWNUM) AS s
from dual
CONNECT BY ROWNUM<=3)
3为字符串length,字符串短的可以这样处理,长的涉及到效率问题,建议使用pl_table
相关文章推荐
- oracle 9i使用闪回查询恢复数据库误删问题
- Oracle查询问题引发临时表使用
- oracle 9i使用闪回查询恢复数据库误删问题
- 使用Oracle 10g中的等待界面诊断性能问题(查询会话等待,查询慢的现象)
- 使用plsql时查询Oracle语句中文无法匹配问题
- ArcGIS——数据库空间SQL(一、oracle中使用sql空间查询及st_astext等函数出错问题)
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
- 关于Oracle字段类型Date使用mybatis generator自动生成工具出现的查询日期只精确到年月日问题
- Hibernate中使用Oracle遇到的查询问题(记录帖)
- ORACLE在使用distinct可能因为查询的列过少导致数据丢失的问题
- 解决MySQL中IN子查询会导致无法使用索引问题
- oracle 9i使用闪回查询恢复数据库误删问题
- oracle 使用闪回事务查询是 视图flashback_transaction_query中列operation为unknown 问题分析
- oracle使用LEFT JOIN关联产生的问题在查询结果中使用CASE WHEN 无法判断
- MySQL中in子查询会导致无法使用索引问题(转)
- Oracle SQL使用笛卡尔连接、正则表达式和层次查询、union all、unpiovt 解决多列值筛选、列转行问题
- oracle新建用户导入scott的表,解决新用户查询scott表时出现表或视图不存在的问题
- Oracle模糊查询之(2.如何测试模糊查询的时间及使用是否使用索引)反向索引与模糊查询
- SQL Server-聚焦使用视图若干限制/建议、视图查询性能问题,你懵逼了?(二十五)