2

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

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

起初我尝试了 999,但它给我的号码增加了 2 个空格。然后是 099,它会打印 097,但会增加一个空格。

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

这个空间是从哪里来的?

谢谢。

4

4 回答 4

4

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

to_char(:center, 'fm099')
于 2013-04-05T17:56:37.293 回答
3

前导空格是潜在的减号。要删除它,您可以使用FM以下格式:

to_char(v_num,'FM099')
于 2013-04-05T18:02:14.473 回答
0

9 9999 返回具有指定位数的值,如果为正数,则带有前导空格,如果为负数,则带有前导减号。前导零为空白,但零值除外,它为定点数的整数部分返回零。

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

使用@DavidAldridge 解决方案,或削减您的价值。

于 2013-04-05T17:55:50.463 回答
0

如果您正在寻找相同位数的所有列值,即使实际值的位数更少。试试这个

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

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

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

于 2020-06-15T07:57:45.623 回答