oracle 如何判断字段是否为连续相同数字(位数不确定),比如9999999999,000000,0等
oracle 如何写SQL, 判断字段是否为连续相同数字(位数不确定),比如9999999999,000000,0等
我来答
添加附件
收藏
复制链接
微信扫码分享
在小程序上查看
分享
添加附件
问题补充
5条回答
默认
最新
with cte1 as
(
select '1111111111111' as num from dual union all
select '22222222222' from dual union all
select '23333333' from dual union all
select '4444' from dual union all
select '7777756666557' from dual
)
select num,regexp_replace(num,'(\w)\1{1,}','\1') as sss from cte1

判断下处理前后是否相等,就知道是否存在连续数字了;
如果处理前长度大于1,但处理后长度为1,说明是同一个数字重复了
评论
有用 0
这个是否可以使用select column_name,count(*) from tab group by column_name 这样字段相同的记录会统计其数量!
评论
有用 0老师,我表达的不是说表中字段相同值的个数。是一个字段中为连续相同数字,比如表中字段id中的值是不是999999,或者0000000,或者0,也就是说是不是连续相同数字,感觉regexp_like 可以用,但是不知道怎么用。
评论
有用 0取个巧吧。
with cte1 as
(
select '1111111111111' as num union all
select '22222222222' union all
select '23333333' union all
select '4444' union all
select '7777756666557'
)
select num,if(replace(num,left(num,1),'') = '',1,0) as isSame from cte1

评论
有用 0回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏

