- 论坛徽章:
- 0
|
db2 中有没有数字性字符转数字的函数.
原帖由 "zly0411" 发表:
不需要类型转换函数,就可以排序吧.
select * from tab order by zh
没问题的。
[quote]原帖由 "足球小子"]的确是这样,字符串是按照每一个字符的ASCII码进行排序的,直接排序即可,不用转换.[/quote 发表:
不对吧!
模拟例子:
表结构:
- C:\>;db2 describe table company
- 列 类型 类型
- 名称 模式 名称 长度 小数位 NULL
- ------------------------------ --------- ------------------ -------- ----- ------
- COMNO SYSIBM VARCHAR 5 0 是
- COMPANY SYSIBM CHARACTER 20 0 是
- MONEY SYSIBM DECIMAL 10 2 是
复制代码
其中comno为varchar类型, 模拟楼主的数字型字符
表记录:
- C:\>;db2 select * from company
- COMNO COMPANY MONEY
- ----- -------------------- ------------
- 2 公司2 100.00
- 1 公司1 100.00
- 4 公司4 100.00
- 3 公司3 100.00
- 7 公司7 100.00
- 11 公司7 100.00
- 10 公司7 100.00
复制代码
排序结果: order by comno,不做转换
- C:\>;db2 select * from company order by comno
- COMNO COMPANY MONEY
- ----- -------------------- ------------
- 1 公司1 100.00
- 10 公司7 100.00
- 11 公司7 100.00
- 2 公司2 100.00
- 3 公司3 100.00
- 4 公司4 100.00
- 7 公司7 100.00
复制代码
不符合楼主的要求吧!
转换后排序结果:
- C:\>;db2 select * from company order by dec(comno)
- COMNO COMPANY MONEY
- ----- -------------------- ------------
- 1 公司1 100.00
- 2 公司2 100.00
- 3 公司3 100.00
- 4 公司4 100.00
- 7 公司7 100.00
- 10 公司7 100.00
- 11 公司7 100.00
复制代码
正确排序 |
|