要查一个oracle数据库表中一个字符串列中,任意一个字符连续为3个的数据,我现在只能全罗列出来:
select 字段名 from 表名 where regexp_like(字段名,'(a{3}|b{3}|c{3}||d{3}|e{3}|f{3}|g{3}|h{3}|i{3}|j{3}|k{3}|l{3}|m{3}|n{3}|o{3}|p{3}|q{3}|r{3}|s{3}|t{3}|u{3}|v{3})|w{3}|x{3}|y{3}|z{3}')
很繁琐,请问谁有更好的方法?
select 字段名 from 表名 where regexp_like(字段名,'(a{3}|b{3}|c{3}||d{3}|e{3}|f{3}|g{3}|h{3}|i{3}|j{3}|k{3}|l{3}|m{3}|n{3}|o{3}|p{3}|q{3}|r{3}|s{3}|t{3}|u{3}|v{3})|w{3}|x{3}|y{3}|z{3}')
很繁琐,请问谁有更好的方法?
解决方案 »
- oracle 提示?
- 帮忙看啊可能SQL语句,语句报错。
- linux下怎么导入从windows导出的oracle的dmp,用sql plus
- 有关XA事务和ORA-01460
- 关于.net 2005中,在数据库连接时用到的CreateObject的问题
- 疑是 Oracle 10g 乘法Bug
- 请问如何在SqlLoader中装载日期型定值SYSDATE的年月日YYYYMMDD形式?急用,谢谢~
- 求救!procedure中的问题。在线等,急。
- 求存储过程,如何在ORACLE里用游标?
- execute sys.auto_server_pkg.unlock_table('用户名','表名')
- oracle 数据量太大,查询语句优化。帮帮忙!!!
- oracle取不重复的记录问题,请高手帮忙解答
(
select 'mmaaaab' a from dual
union all
select 'xxbbbbbc' from dual
union all
select 'ccccbbc' from dual
union all
select 'ddddbbc' from dual
union all
select 'eeeebc' from dual
union all
select 'ffffbbc' from dual
)select * from a where regexp_like(a,'[a-z]{3}')不知道是不是你想要的
'[a-z]{3}'的意思是,任意连续3个字母,而不是相同的连续3个字母,
with a as
(
select 'abbc' a from dual
)
select * from a where regexp_like(a,'[a-z]{3}');
结果是:abbc是不对的。
LS你说的很有道理,我小改了一下,这样应该没问题with a as
(
select 'mmagaab' a from dual
union all
select 'xxbbbbbc' from dual
union all
select 'ccccbbc' from dual
union all
select 'ddddbbc' from dual
union all
select 'asdfas' from dual
union all
select 'ffffbbc' from dual
)select * from a where regexp_like(a,'([a-z])\1{2}')