码迷,mamicode.com
首页 > 数据库 > 详细

DB2数据库字符比较大小

时间:2015-05-28 17:35:58      阅读:444      评论:0      收藏:0      [点我收藏+]

标签:

碰到一个这样的需求:查询页面的查询条件有一条:按XXX号起始、XXX号截止查询两个号码之间的所有数据("XXX号"由字母数字组成)。

遇到此问题时,第一反应是:字母数字在一起怎么比较大小?谁大谁小?

于是,我自己在库(DB2)中修改了足够多的数据来测试一下,数据(字段名:"REVERSE1")很简单0-9,A-Z,a-z,还有一些为null。简单的测试了一下:

1.sql语句:select REVERSE1 from syscompany order by REVERSE1;

2.结果:技术分享技术分享技术分享技术分享

3.结论:DB2数据库字母数字比较大小的规则为:0-9<a<A<b<B<c<C<......<z<Z;

但是我们在实际运用中,我们遇到的肯定是好长的数字字母组合成的字符串,重点是还不知道输入的字母有多长,那么对于不等长的字符串比较大小又是什么样子的呢,我试了一下:

以下图片基于的查询条件的sql语句为:

技术分享

XXX号对应:voucher0_.VOUCHERREGNO字段。

1.我没有输入XXX号进行查询,结果:

技术分享

2.我在"XXX号 从:"  查询条件处输入 "VPDJp" ,在" 到:" 查询条件处输入"z",结果:

技术分享

可以看出,其比较大小的时候,是按从前往后的顺序一个字符一个字符的去比较,如果前一个字符小了,就不看后面的字符了。

然后,我又想到一个问题,如果根据前一个字符大小来判断整个字符串的大小,那么如果我的字符如果是:VPDJP0200000015001421313814152和VPDJP020000001500142131381415200比较,也就是前面相同,但是后面没有任何字母数字了与"0"比较,谁大谁小呢?试验一下:

1.我在"XXX号 从:"  查询条件处输入 "VPDJP0200000015001421313814152" ,在" 到:" 查询条件处输入"VPDJP0200000015001421313814152",结果:

技术分享

2.我在"XXX号 从:"  查询条件处输入 "VPDJP0200000015001421313814152" ,在" 到:" 查询条件处输入"VPDJP020000001500142131381415200",结果:

技术分享

由此可以看出:在前面字符相同的情况下,后面没有数据与"0"比较,"0"是比较大的。

 

DB2数据库字符比较大小

标签:

原文地址:http://www.cnblogs.com/bjxgp/p/4536376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!