在我的数据库中已存在的数字前添加“零”

时间:2013-11-27 07:46:24

标签: sql

我的数据表名称为tblwcrates,我的列为:

WC_code,wc_description,wc_rates

我几乎完成了所有的过程。每当我运行查询时,wc_code都是有序的,但数字的最大长度是5.在某些情况下,2&有3位数字,我面临非法订单的问题。示例输出:

0042
101
205
4094
16

每当我输入小于5位的数字时,我想添加前导零。

2 个答案:

答案 0 :(得分:0)

当您订购包含数字的字符串时会发生这种情况。而不是数字排序,使用字母排序,而您期望数字排序。尝试

ORDER BY TO_NUMBER(wc_code)

或者,你可以确保你的wc_code用零填充,无论是从数字转换为字符串(wc_code 表定义中的数字,对吗?)还是之后。在Oracle中,有一个函数LPAD:

LPAD(wc_code, 5, '0')

答案 1 :(得分:0)

试试这个:

select RIGHT('0000000'+cast(wc_code as varchar(10),5)