我目前正在与一些对你来说一定是微不足道的事情作斗争。
我有 2 个数字 191 和 97,我需要将它们放入 SQL 请求中,因为 chars 和 97 必须打印为 097。
起初我尝试了 999,但它给我的号码增加了 2 个空格。然后是 099,它会打印 097,但会增加一个空格。
to_char(:center, '099') = " 197" and " 097"
这个空间是从哪里来的?
谢谢。
您正在寻找的是格式修饰符元素:
to_char(:center, 'fm099')
前导空格是潜在的减号。要删除它,您可以使用FM
以下格式:
to_char(v_num,'FM099')
9 9999 返回具有指定位数的值,如果为正数,则带有前导空格,如果为负数,则带有前导减号。前导零为空白,但零值除外,它为定点数的整数部分返回零。
来自http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i34510
使用@DavidAldridge 解决方案,或削减您的价值。
如果您正在寻找相同位数的所有列值,即使实际值的位数更少。试试这个
a) SELECT TO_CHAR(COLUMN_NAME, 'FM099') FROM TABLE_NAME;
b) SELECT TO_CHAR(COLUMN_NAME, 'FM000') FROM TABLE_NAME;
两者都工作正常。但不知道哪一个是最好的选择。