如 :select * from table where name in ('001,002,003,004') , name的值会有一到两个,一个的当然没问题. 但是name='001,003'就不好了,请叫各位高手该如何查询
解决方案 »
- 关于一个带参数的sql语句的问题
- ORACLE RAC VIP UNKNOW
- 100分求助OCA题目解答(十六)。
- 关于oracle表的几个小问题,谢谢!
- Oracle9i 9201升级9208的状况以及问题!(高分求解啊!急!)
- oci连接数据库,编译后出现 undefined reference to `OCIInitialize' 是什么意思?哪位高手会?
- oracle 9i + solaris 9里面的内存分配问题
- 一个ORACLE替换数据库的问题,急...................
- oracle的文件物理存储结构
- select 语句求解
- orcale的case when的问题
- 访问oracle数据库是不是只能用ODBC
insert into t_x values('001');
insert into t_x values('002');
insert into t_x values('003');
insert into t_x values('004');
insert into t_x values('005');
commit;select t.*
from t_x t,
(select regexp_substr('001,002,003,004', '[^,]+', 1, level) str
from dual
connect by level <= regexp_count('001,002,003,004', ',') + 1) t1
where t.name = t1.str
楼主是要查询name在001,002,003,004在这3个范围?name字段是字符类型的吧?为何不对001,002,003单独加单引?
然后用户选择查询条件进行查询这个name字段匹配的项,查询条件也是用逗号分隔开的 。
select * from table where name in ('001’,'002','003','004')
数据库中的NAME字段的值有可能是001,003这种情况下,LZ用IN显然差不多了,如果就像LZ所说的就4种情况的话,用LIKe就好了。select * from table where name lik '%001%' or name like '%002%' or name like '%003%' or name like '%004%当然我估计情况不是这么简单,呵呵,如果值很多的话,效率问题留给大家