簡體   English   中英

SQL使用Floor向下取整

[英]SQL using Floor to round down

我是SQL的新手,正嘗試使用Floor函數進行四舍五入,但是我收到一條消息,提示該函數需要1個參數。 我沒有看到這個問題,可能是我很想念的很簡單的事情。 任何幫助將不勝感激。

,(Floor( 
        CASE 
            WHEN ret2 <> 0 OR originalretail <> 0 
                THEN CASE 
                        WHEN ret2 > 0 
                            THEN (ret2-retone)/ret2 
                        WHEN originalretail > 0 
                            THEN (originalretail-retone)/originalretail 
                        ELSE NULL 
                      END 
        END 
        ,2) * 100 AS [Savings %]

我將Round換為Floor,因為它可以工作,但是如果我將Round換為Floor功能,則會收到錯誤消息。 我將更新代碼

因為floor需要1個參數,並且您要傳入2個,所以嵌套的大小寫和數字2也要輸入。在開頭也有一個流氓的開放括號...

,(round(
        --First Argument  
        CASE 
            WHEN ret2 <> 0 OR originalretail <> 0 
                THEN CASE 
                        WHEN ret2 > 0 
                            THEN (ret2-retone)/ret2 
                        WHEN originalretail > 0 
                            THEN (originalretail-retone)/originalretail 
                        ELSE NULL 
                      END 
        END
        --second...
        ,2) * 100 AS [Savings %]

要解決此問題,請刪除逗號和2及前導括號。

,floor( 
        CASE 
            WHEN ret2 <> 0 OR originalretail <> 0 
                THEN CASE 
                        WHEN ret2 > 0 
                            THEN (ret2-retone)/ret2 
                        WHEN originalretail > 0 
                            THEN (originalretail-retone)/originalretail 
                        ELSE NULL 
                      END 
        END 
        ) * 100 AS [Savings %]

另外,如果您的列是整數,則將獲得整數除法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM