【问题标题】:How to Round Decimal Result of a Calculated Column in Oracle SQL如何在 Oracle SQL 中对计算列的十进制结果进行四舍五入
【发布时间】:2019-06-29 14:52:08
【问题描述】:

我在 Oracle 中有一个计算列,由于小数而返回一个非常长的数字(例如:200000.0044068030021345452041589203332645)。

有没有办法将其转换为 200000.00?我尝试了 Round、TO_DECIMAL、CAST。但似乎没有任何效果。

SELECT
CASE
     WHEN TRD = 'FUT'
     THEN
         CASE
             WHEN BUY_SELL = 'BUY' 
             THEN CUR / PRC 
             ELSE -CUR / PRC
         END
     ELSE NULL
END AS UNITS
FROM LAN.Details

【问题讨论】:

    标签: sql oracle type-conversion calculated-columns


    【解决方案1】:

    使用圆形

      select round(200000.0044068030021345452041589203332645,2) from dual
    

    所以在你的查询中

    SELECT
    CASE
         WHEN TRD = 'FUT'
         THEN
             CASE
                 WHEN BUY_SELL = 'BUY' 
                 THEN round( CUR / PRC ,2)
                 ELSE round(-CUR / PRC,2)
             END
         ELSE NULL
    END AS UNITS
    FROM LAN.Details
    

    【讨论】:

    • 不确定这有什么帮助。该数字只是结果集的一个示例。我需要将这一轮应用于整个 CASE 语句。
    • 哇,如此简单而有效。谢谢,效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 2013-10-19
    • 1970-01-01
    • 2011-12-12
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多