lshboo 发表于 2016-11-16 04:27:12

怎样将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 加到相应的排序子句中即可。
页: [1]
查看完整版本: 怎样将DB2的排序转成Java的排序