在SQLite中获取数字的ceil值

时间:2013-02-19 22:45:59

标签: sql sqlite ceil

所以我看到this question有一个很好的答案,但无论如何我想要围捕,而不是无论如何都要四舍五入。在转换int之前向它添加1将不起作用,因为它会将5.0“舍入”到6.0,例如。

那么我应该如何在SQLite中实现ceil

4 个答案:

答案 0 :(得分:8)

这将更优雅地给你相同的答案:

SELECT CAST(x+1-1e-n AS INT);

(假设您的精度不会超过 n 小数点)

答案 1 :(得分:7)

这个怎么样?

select (case when x = cast(x as int) then cast(x as int)
             else 1 + cast(x as int)
        end)

答案 2 :(得分:1)

一些有用的答案,我发现此解决方案也非常简单。

select round(column+0.5) from table;

这意味着如果原始数字<0.5,您将始终四舍五入;如果原始数字> 0.5,则始终四舍五入

答案 3 :(得分:-1)

使用php你很容易:

$db->createFunction('ceil', 'ceil', 1);

$db->createFunction('floor', 'floor', 1);

select ceil(\`column`) from table;