CEIL和FLOOR函数查询(Oracle,MSSQL)


CEIL(n)函数:取大于等于数值n的最小整数

--在Oracle 9i中
SELECT mgr,mgr/100,CEIL(mgr/100) FROM scott.emp;
--结果:
       MGR    MGR/100 CEIL(MGR/100)
---------- ---------- -------------
      7902      79.02            80
      7698      76.98            77
      7698      76.98            77
      7839      78.39            79
      7698      76.98            77
      7839      78.39            79
      7839      78.39            79
      7566      75.66            76

      7698      76.98            77
      7788      77.88            78

       MGR    MGR/100 CEIL(MGR/100)
---------- ---------- -------------
      7698      76.98            77
      7566      75.66            76
      7782      77.82            78

已选择14行。

--在MSSQL 2005中
CREATE TABLE #Test(X numeric(20,1))
INSERT INTO #Test
SELECT 61.3 UNION ALL
SELECT 132.2 UNION ALL
SELECT 22.7 UNION ALL
SELECT 11.8
SELECT ceiling(X) FROM #Test --在MSSQL中CEIL写成CEILING。
DROP TABLE #Test

/*--结果
---
62
133
23
12
*/

FLOOR(n)函数:取小于等于数值n的最大整数

--在Oracle 9i中
SELECT mgr,mgr/100,FLOOR(mgr/100) FROM scott.emp;

--结果:
       MGR    MGR/100 FLOOR(MGR/100)
---------- ---------- --------------
      7902      79.02             79
      7698      76.98             76
      7698      76.98             76
      7839      78.39             78
      7698      76.98             76
      7839      78.39             78
      7839      78.39             78
      7566      75.66             75

      7698      76.98             76
      7788      77.88             77

       MGR    MGR/100 FLOOR(MGR/100)
---------- ---------- --------------
      7698      76.98             76
      7566      75.66             75
      7782      77.82             77

已选择14行。

--在MSSQL 2005中
CREATE TABLE #Test(X numeric(20,1))
INSERT INTO #Test
SELECT 61.3 UNION ALL
SELECT 132.2 UNION ALL
SELECT 22.7 UNION ALL
SELECT 11.8
SELECT FLOOR(X) FROM #Test --函数名一样。
DROP TABLE #Test
/*--结果
---
61
132
22
11
*/

posted @ 2007-10-17 08:29  ok_008  阅读(9755)  评论(0编辑  收藏  举报
给我写信