SQL to_char()将2位数字打印为0xx而不触及3位数字

时间:2013-04-05 17:48:51

标签: sql oracle

我目前正在与某些事情作斗争 这对你来说一定是微不足道的。

我有2个数字191和97,我需要将它们放在SQL请求中,因为chars和97必须打印为097。

起初我尝试了999,但它为我的数字添加了2个空格。 然后是099,它会打印097,但它会为它增加一个空格。

to_char(:center, '099') = " 197" and " 097"

这个空间来自哪里?

感谢。

4 个答案:

答案 0 :(得分:3)

您正在寻找的是格式修饰符元素:

to_char(:center, 'fm099')

答案 1 :(得分:2)

领先的空间是潜在的减号。要删除它,您可以使用以下格式的FM

to_char(v_num,'FM099')

答案 2 :(得分:0)

9 9999返回具有指定位数的值,如果是正数则带有前导空格,如果是负数则返回前导减去。导出零为空白,除了零值,对于固定的整数部分返回零值点数。

来自http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i34510

使用@DavidAldridge解决方案,或修剪您的价值。

答案 3 :(得分:0)

如果要查找所有位数相同的列值,即使实际值位数较少。试试这个

a) SELECT TO_CHAR(COLUMN_NAME, 'FM099') FROM TABLE_NAME;

b) SELECT TO_CHAR(COLUMN_NAME, 'FM000') FROM TABLE_NAME;

两个都工作正常。但不知道哪一个是最佳选择。