"101"比"1203"大的时候.java中的比较办法和Oracle中的比较办法!!

本文探讨了Java中使用compareTo方法比较字符串大小的规则,特别针对Oracle SQL中使用to_number和substr进行复杂数值编码比较的问题,提供了解决方案并解释了其原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String firstValue="101";
String secondVlue="1203";
System.out.println(firstValue.compareTo(secondVlue));
//firstValue比secondVlue小的时候.返回一个负数
//firstValue比secondVlue大的时候返回一个正数
compareTo中的一个默认定义比较规则..在某些特定时候.相当方便
(比如说:数据库中有code列.存了一些数字编码.以方便在前台显示成一棵tree
101
10101
10102
10103
102
10201
10202
201
20101
-----------------------------------------
这个时候.应该是201比10101大.而如果用正常的比较,则会是10101大于201.没有办法满足需要
  而compareTo则可以很好的解决这个问题..


                    Ps:想起了.以前在学校学习.老师讲compareTo听的迷迷糊糊的时候!!!!                                 书到用时,方恨少呐
)

Oracle中的比较办法:

WHERE to_number(substr(code,1,7)) >= 2041001 and to_number(substr(code,1,7)) < 2041099 or code=2041099

转载于:https://my.oschina.net/easonwang14/blog/36409

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值