NUMBER用法

表示

作用

说明

Number(p, s)

声明一个定点数

p(precision)为精度s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127

Number(p)

声明一个整数

相当于Number(p, 0)

Number

声明一个浮点数

其精度为38,要注意的是scale的值没有应用,也就是说scale的指不能简单的理解为0,或者其他的数。

 

 

 

表示 作用 说明

Number(p, s) 声明一个定点数 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个数字进行舍入。

 当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入

s的情况:
s > 0
   精确到小数点右边s位,并四舍五入。然后检验有效位是否 <= p。
s < 0 
   精确到小数点左边s位,并四舍五入。然后检验有效位是否 <= p + |s|。
s = 0
   此时NUMBER表示整数。  

 

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

 


 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ROW_NUMBER() 是一种 SQL 窗口函数,它为查询结果集的每一行分配一个唯一的数字。它通常与 ORDER BY 子句一起使用,以为结果集中的每一行分配一个唯一的数字。 以下是 ROW_NUMBER() 函数的语法: ``` ROW_NUMBER() OVER (ORDER BY column_name1 [, column_name2, ... column_nameN] [ASC | DESC]) ``` 其中: - `ROW_NUMBER()`:函数名称。 - `OVER`:用于指定用于计算行数的窗口函数。 - `ORDER BY`:用于指定排序规则。 - `column_name1, column_name2, …, column_nameN`:用于指定排序列的列名。 - `ASC` 或 `DESC`:用于指定升序或降序排序。 以下是一个使用 ROW_NUMBER() 函数的示例查询: ``` SELECT ROW_NUMBER() OVER (ORDER BY EmployeeID) AS RowNumber, FirstName, LastName FROM Employees ``` 这将返回一个包含每个员工的行号、名字和姓氏的结果集。行号将按 EmployeeID 升序排序。 ### 回答2: SQL的ROWNUMBER是一种用于生成序号的函数,主要用于对查询结果进行排序和筛选。它可以为查询结果集中的每一行分配一个唯一的序号,可以根据指定的排序规则对序号进行排序。具体用法如下: 1. 语法:SELECT ROW_NUMBER() OVER(PARTITION BY 列名 ORDER BY 排序列) AS '序号' FROM 表名 2. ROW_NUMBER函数需要和OVER子句一起使用,OVER子句用于确定生成序号的范围和排序规则。 3. PARTITION BY子句可选,用于将查询结果集分组,每个分组内的行都会生成一个独立的序号。比如,可以按照某一列的值进行分组,生成相对排名。 4. ORDER BY子句是必需的,用于指定排序规则,决定生成序号的顺序。可以按照一个或多个列进行排序。 5. ROW_NUMBER函数会为每一行生成一个唯一的序号,序号从1开始递增。 6. 通常,在ORDER BY子句中按照某一列的升序或降序排列,以获得正确的序号。 7. 使用ROW_NUMBER函数能够方便地实现对查询结果进行分页显示或筛选出一部分数据。 总的来说,ROW_NUMBER函数是SQL中用于生成序号的强大工具,通过结合OVER子句和其他函数,可以实现各种复杂的排序和筛选操作。它可以对结果集进行分组、排序和限制输出行数,具有广泛的应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值