MSSQL中Decim al与Nu meric同义:都用于精确存储数值,一般用Deci mal。何谓精度:最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度
老板英文
必须是从 1 到最大精度38 之间的值。默认精度为18。孤独的说说
小数位数:小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之
间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。Oracle中Deci mal与N umber的区别:一般用Num ber。
一、DECIMA L类型详细
Oracle只是在语法上支持de cimal类型,但是在底层实际上它就是numbe r类型,支持
deci mal类型是为了能把数据从Or acle数据库移到其他数据库中(如DB2等)。
因为deci mal在O racle底层就是n umber类型,所以就当nu mber类型使用就可以了,如果需要对这种字段类型转为cha r类型可以用to_c har函数对其转换。
decima l类型从根本上说应该是数字类型的,因为orac le内部的数据类型,对于数字只有numbe r类型,
都当数字类型进行处理即可。decima l(8,2)代表数字总共8位长度,小数部分是2位。范围是8位,精确到小数点后2位,并四舍五入,即存6位整数,两位小数。也就是最大值可以是999999.99,可存放2位小数。Oracle中,可以使用to_char函数对数字进行转换,使它变成字符类型.
优秀人物事迹
二、NUMBER类型详细
在Oracl e中Num ber类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在诺基亚3100
1.0 * 10(-130) —— 9 * 10(125) {38个9后边带88个0}
的数字,当Oracl e中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。
Number的数据声明如下:
eg:
Actual Data Specif ied As Stored As
----------------------------------------
123.89 NUMBER123.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) exceed s precis ion (有效位为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 NUMBER123.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 plainc opyprint?
1.SELECT (CASE WHEN tt1.statis tics_dateis not null THEN tt1.statis tics_dateE
LSE tt2.statis tics_dateEND) AS statis tics_date, NVL(tt1.actuse r,0) AS actuse r
,
w_us er,0) AS new_us er
2. FROM
3. (
4. SELECT t.statis tics_date,SUM(t.actuse r) AS actuse r FROM pdt_st at_ac t
_1133_i t WHEREt.statis tics_datelike '2013-04%' and t.statis tics_month = '20
13-04' GROUPBY t.statis tics_date
5. ) tt1
6. FULL JOIN
7. (
8. SELECT t2.statis tics_date,w_us er) OVER(ORDERBY t2.stati
开学标语stics_date) AS new_us er FROM (SELECT statis tics_dateAS statis tics_date,
SUM(new_us er) AS new_us er FROM pdt_st at_ne wur_1133_i WHEREstati
stics_datelike '2013-04%' GROUPBY statis tics_date) t2
9. ) tt2 ON tt1.statis tics_date= tt2.statis tics_date
更多1
∙读书笔记-Don't Make Me Think(SteveKrug)
∙oracle中的num ber数据类型的浅析