oracle截取最后两位,请教 如何统计字符串中最后两位字符是一样的个数 谢谢

Try!

SQL> select * from table1;

CODE  STR

----- ---------------------------------------------------------------

code1 2451020 2451130 2541420 2541220 2541230 2541241 2541231 2541230

code2 2451020 2451120 2541425 2541220 2541225 2541260 2541238 2541230

SQL>

SQL> select code,

2         str,

3         flag "level(结尾尾数)",

4         count(*) "countNum"

5  from

6  (select a.rn,

7          b.code,

8          b.str,

9          substr(substr(' ' || str || ' ',

10                 instr(' ' || str || ' ', ' ', 1, a.rn) + 1,

11                 instr(' ' || str || ' ', ' ', 1, a.rn + 1) - instr(' ' || str || ' ', ' ', 1, a.rn) - 1),

12                 -2) flag

13     from (select level rn from (select max(length(str) - length(replace(str, ' ', ''))) diff from table1) connect by level <= diff + 1) a,

14          table1 b

15    where length(b.str) - length(replace(b.str, ' ', '')) + 1 >= a.rn)

16   group by code, str, flag

17   order by code, str, flag

18  /

CODE  STR                                                             level(结尾尾数)   countNum

----- --------------------------------------------------------------- --------------- ----------

code1 2451020 2451130 2541420 2541220 2541230 2541241 2541231 2541230 20                       3

code1 2451020 2451130 2541420 2541220 2541230 2541241 2541231 2541230 30                       3

code1 2451020 2451130 2541420 2541220 2541230 2541241 2541231 2541230 31                       1

code1 2451020 2451130 2541420 2541220 2541230 2541241 2541231 2541230 41                       1

code2 2451020 2451120 2541425 2541220 2541225 2541260 2541238 2541230 20                       3

code2 2451020 2451120 2541425 2541220 2541225 2541260 2541238 2541230 25                       2

code2 2451020 2451120 2541425 2541220 2541225 2541260 2541238 2541230 30                       1

code2 2451020 2451120 2541425 2541220 2541225 2541260 2541238 2541230 38                       1

code2 2451020 2451120 2541425 2541220 2541225 2541260 2541238 2541230 60                       1

9 rows selected

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值