怎样将DB2的排序转成Java的排序

我们知道,  DB2中排序是比较特殊的,  它的排序是先 小写, 再大写, 然后再是数字。  但是普通的ascii 排序或者说我们用到Java 里的排序是 先数字 , 在大写 最好才是小写。   怎样才能将DB2的排序转成Java 的排序呢 ,  在Db2有一个比较有用的函数 translate , 

      translate (   value,   '目标集', '源集')     它可以将 源集中的在value 出现的值转成相应的 目标集对应位置的值。

 

 

比如 select  Name,  translate (  Name,   '123',   'abc')  from someTable;

 

可以的结果会是:

    abb     122

    abc      123

    ccc       333

 

这样我们的写法

 

 translate(  someColumnToOrder,

         'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',

         '0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ' )

 

 

如果要求大小写不敏感:

 

translate(  someColumnToOrder,

         'abcdefghijkkmmooqqssuuwwyyAACCEEGGIIKKMMOOQQSSUUWWYY0022446688',

         '0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ')

 

 

将这个 translate 加到相应的排序子句中即可。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值