【问题标题】:Function format number函数格式号
【发布时间】:2013-05-22 00:51:49
【问题描述】:

对于甲骨文,

任何人都可以修复以下函数以使其与“数字 (10,2)”一起使用吗?只有这个条件。

我来了函数..

CREATE OR REPLACE FUNCTION Fmt_num(N1 in NUMBER)
RETURN CHAR
IS
BEGIN
RETURN TO_CHAR(N1,'FM9,9999.99');
END;
/

我可以将它与 SQL 语句一起使用,如下所示

SELECT Fmt_num(price) from A;

【问题讨论】:

    标签: sql oracle function plsql formatting


    【解决方案1】:

    这取决于您所说的“作品”以及您想要的输出。我的猜测是您只想更新格式掩码

    to_char( n1, 'fm999,999,999.99' )
    

    不过,这假设您希望使用硬编码的小数点和分隔符,并且您希望使用美国/欧洲将数字分隔为 3 组的惯例,而不是使用传统的印度系统来表示大数字。

    【讨论】:

    • 感谢您提供的信息。我想为特定列创建条件,例如具有 number(3,2) 的列不能使用此函数。
    • @NiickMosqow - 为什么你不能用较小的数字使用这个功能?例如,如果您传入一个 4 位数字,则输出将与当前函数的输出完全相同。
    【解决方案2】:
    CREATE OR REPLACE FUNCTION Fmt_num(N1 in NUMBER)
    RETURN CHAR
    IS
    BEGIN
    RETURN TO_CHAR(N1,'FM99,999,999.99');
    END;
    /
    

    【讨论】:

      【解决方案3】:

      如果你真的想要每 4 位逗号,你可以这样做:

      TO_CHAR(N1,'FM9999,9999,9999.99');
      

      但是,我建议您使用区域设置安全版本(G 代表分组字符,D 代表小数分隔符):

      TO_CHAR(N1,'FM9999G9999G9999D99');
      

      【讨论】:

        猜你喜欢
        • 2012-12-14
        • 1970-01-01
        • 2016-01-08
        • 2011-12-28
        • 1970-01-01
        • 1970-01-01
        • 2012-02-14
        • 2017-01-19
        • 2016-04-07
        相关资源
        最近更新 更多