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

不问归期 提交于 2020-01-08 13:09:43


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
*/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!