暂无图片
oracle 如何判断字段是否为连续相同数字(位数不确定),比如9999999999,000000,0等
我来答
分享
寨寨🍒
2022-04-26
oracle 如何判断字段是否为连续相同数字(位数不确定),比如9999999999,000000,0等

oracle 如何写SQL, 判断字段是否为连续相同数字(位数不确定),比如9999999999,000000,0等

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
DarkAthena
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

image.png

判断下处理前后是否相等,就知道是否存在连续数字了;
如果处理前长度大于1,但处理后长度为1,说明是同一个数字重复了

暂无图片 评论
暂无图片 有用 0
暂无图片
寨寨🍒
题主
2022-05-09
多谢老师,受教
杨卓

这个是否可以使用select column_name,count(*) from tab group by column_name 这样字段相同的记录会统计其数量!

暂无图片 评论
暂无图片 有用 0
刘浩
2022-04-26
很机智
寨寨🍒
题主
2022-04-26
老师,我表达的不是说表中字段相同值的个数。是一个字段中为连续相同数字,比如表中字段id中的值是不是999999,或者0000000,或者0,也就是说是不是连续相同数字,感觉regexp_like 可以用,但是不知道怎么用。
寨寨🍒

老师,我表达的不是说表中字段相同值的个数。是一个字段中为连续相同数字,比如表中字段id中的值是不是999999,或者0000000,或者0,也就是说是不是连续相同数字,感觉regexp_like 可以用,但是不知道怎么用。

暂无图片 评论
暂无图片 有用 0
chengang

取个巧吧。

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

image.png

暂无图片 评论
暂无图片 有用 0
寨寨🍒
题主
2022-04-26
多谢老师,受教
寨寨🍒

多谢老师,受用!

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