Decimal与Number(Numeric)的区别

更新时间:2023-07-26 19:09:34 阅读: 评论:0

MSSQLDecimal与Numeric同义: 用于精确存储数值,一般用Decimal。
何谓精度:最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。 议论文的基本结构
小数位数:小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。
Oracle中Decimal与Number的区别 一般用Number
一、DECIMAL类型详细
Oracle只是在语法上支持decimal类型,但是在底层实际上它就是number类型,支持decimal类型是为了能把数据从Oracle数据库移到其他数据库中(如DB2等)。
因为decimal在Oracle底层就是number类型,所以就当number类型使用就可以了,如果需要对这种字段类型转为char类型可以用to_char函数对其转换。
decimal类型从根本上说应该是数字类型的,因为oracle内部的数据类型,对于数字只有numbe
r类型,都当数字类型进行处理即可。decimal(8,2)代表数字总共8位长度,小数部分是2位。范围是8位,精确到小数点后2位,并四舍五入,即存6位整数,两位小数。也就是最大值可以是999999.99,可存放2位小数。Oracle中,可以使用to_char函数对数字进行转换,使它变成字符类型.
二、NUMBER类型详细
在Oracle中Number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在
1.0 * 10(-130) —— 9 * 10(125) {38个9后边带88个0}
的数字,当Oracle中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。
Number的数据声明如下:
学校健康管理制度
表示
作用
说明
Number(p, s)
feel的用法
声明一个定点数
p(precision)为精度s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127
Number(p)
声明一个整数
相当于Number(p, 0)
Number
声明一个浮点数
其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。
定点数的精度(p)和刻度(s)遵循以下规则:
当一个数的整数部分的长度> p-s 时,Oracle就会报错
当一个数的小数部分的长度> s 时,Oracle就会舍入。
当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。
a了是什么意思当s > p时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入.
NUMBER类型细讲
Oracle number datatype 语法:NUMBER[(precision [, scale])]
简称:precision --> p
      scale    --> s
NUMBER(p, s)
范围:1 <= p <=38, -84 <= s <= 127
保存数据范围:-1.0e-130 <= number value < 1.0e+126   
保存在机器内部的范围:1 ~ 22 bytes
有效位:从左边第一个不为0的数算起的位数。
s的情况:
s > 0
  精确到小数点右边s位,并四舍五入。然后检验有效位是否<= p。
s < 0
  精确到小数点左边s位,并四舍五入。然后检验有效位是否<= p + |s|。
s = 0
  此时NUMBER表示整数。
吊灯英文eg:
Actual Data  Specified As  Stored As
----------------------------------------
123.89          NUMBER        123.89
123.89          NUMBER(3)    124
123.89          NUMBER(6,2)  123.89
123.89          NUMBER(6,1)  123.9
123.89          NUMBER(4,2)  exceeds precision (有效位为5, 5 > 4)
123.89          NUMBER(6,-2)  100
.01234          NUMBER(4,5)  .01234 (有效位为4)
.00012          NUMBER(4,5)  .00012
.000127      NUMBER(4,5)  .00013
.0000012      NUMBER(2,7)  .0000012
.00000123    NUMBER(2,7)  .0000012
1.2e-4          NUMBER(2,5)  0.00012
1.2e-5          NUMBER(2,5)  0.00001
123.2564      NUMBER        123.2564
1234.9876    NUMBER(6,2)  1234.99
12345.12345  NUMBER(6,2)  Error (有效位为5+2 > 6)
1234.9876    NUMBER(6)    1235 (s没有表示s=0)
12345.345    NUMBER(5,-2)  12300
1234567      NUMBER(5,-2)  1234600
12345678      NUMBER(5,-2)  Error (有效位为8 > 7)
123456789    NUMBER(5,-4)  123460000
1234567890    NUMBER(5,-4)  Error (有效位为10 > 9)
12345.58      NUMBER(*, 1)  12345.6
0.1          NUMBER(4,5)  Error (0.10000, 有效位为5 > 4)
0.01234567    NUMBER(4,5)  0.01235
0.09999      NUMBER(4,5)  0.09999
三、Oracle语句距离
项目中的语句:
[sql] view plaincopyprint?
1.SELECT (CASE WHEN tt1.statistics_date is not null THEN tt1.statistics_date ELSE tt2.statistics_date ENDAS statistics_date, NVL(tt1.actur,0) AS actur, w_ur,0) AS new_ur 
2.        FROM 
工资条制作3.英语作文网        ( 
4.          SELECT t.statistics_date, SUM(t.actur) AS actur FROM pdt_stat_act_1133_i t WHERE t.statistics_date like '2013-04%' and t.statistics_month = '2013-04' GROUP BY t.statistics_date 
5.        ) tt1 
6.        FULL 家的含义是什么JOIN 
7.        ( 
8.          SELECT t2.statistics_date, SUM(t2.new_ur) OVER(ORDER BY t2.statistics_date) AS new_ur FROM (SELECT statistics_date AS statistics_date, SUM(new_ur) AS new_ur FROM pdt_stat_newur_1133_i WHERE statistics_date like '2013-04%' GROUP BY statistics_date) t2 
9.        ) tt2 ON tt1.statistics_date = tt2.statistics_date 
SELECT (CASE WHEN tt1.statistics_date is not null THEN tt1.statistics_date ELSE tt2.statistics_date END) AS statistics_date, NVL(tt1.actur,0) AS actur, w_ur,0) AS new_ur
        FROM
        (
          SELECT t.statistics_date, SUM(t.actur) AS actur FROM pdt_stat_act_1133_i t WHERE t.statistics_date like '2013-04%' and t.statistics_month = '2013-04' GROUP BY t.statistics_date
        ) tt1
        FULL JOIN
        (
          SELECT t2.statistics_date, w_ur) OVER(ORDER BY t2.statistics_date) AS new_ur FROM (SELECT statistics_date AS statistics_date, SUM(new_ur) AS new_ur FROM pdt_stat_newur_1133_i WHERE statistics_date like '2013-04%' GROUP BY statistics_date) t2
        ) tt2 ON tt1.statistics_date = tt2.statistics_date

本文发布于:2023-07-26 19:09:34,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1097729.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类型   数字   小数点   表示   范围
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图