Number 用法

NUMBER最大有效精度是40,不是38。     38只是可以声明的最大约束.

一、Number与int,float等数据类型的区别

oracle本没有int类型,为了与别的数据库兼容,新增了int类型作为Number类型的子集
1、int类型只能存储整数;
2、Number可以存储浮点数,也可以存储整数;

二、Number类型用法

1.小数表示   number( precision , scale )  

precision 代表精度 , scale 代表表示小数点右边的数字个数,其取值范围为(-84)-127

2.整数表示  number( precision )

三、Number用法例子

Number(10,1) ——存储小数位为1位,总长度为10的浮点数,如果小数位数不足,则用0补全;
Number(10) ——存储总长度为10的整数

四、定点数的精度p和刻度s遵循以下规则:

当一个数的整数部分的长度 > p-s 时,Oracle就会报错
例:12345.12345 NUMBER(6,2)         Error

当一个数的小数部分的长度 > s 时,Oracle就会舍入
例:12345.58       NUMBER(*, 1)        12345.6

当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入
例:12345.345     NUMBER(5,-2)        12300

参考:

1.oracle中的number类型用法及举例_bigdata王一的博客-CSDN博客_oracle中number用法

ROW_NUMBER()SQL 中的一个函数,它为查询结果中的每一行分配一个唯一的数字。这个数字是基于查询结果的顺序,从 1 开始递增。ROW_NUMBER() 函数通常与 OVER 子句一起使用,以在特定的分组或窗口范围内分配行号。 ROW_NUMBER() 函数的语法通常如下: ```scss ROW_NUMBER() OVER (PARTITION BY column1, column2, ... ORDER BY column3) AS alias ``` * `PARTITION BY`:可选参数,用于指定按哪个列或组对数据进行分区。这有助于在同一分区内的行之间分配行号。 * `ORDER BY`:可选参数,用于指定根据哪个列对分区内的行进行排序。如果没有指定排序列,则默认按照升序排序。 * `AS`:用于给结果集中的每一行分配一个别名。 ROW_NUMBER()用法示例: 假设有一个名为 Employees 的表,其中包含员工信息,包括员工编号(EmployeeID)和姓名(Name)。我们想要按部门(DepartmentID)对员工进行分组,并为每个员工分配一个行号。可以使用以下查询语句: ```sql SELECT ROW_NUMBER() OVER (PARTITION BY DepartmentID ORDER BY EmployeeID) AS RowNum, EmployeeID, Name FROM Employees; ``` 这将返回一个结果集,其中每一行都包含员工的行号(RowNum)、员工编号(EmployeeID)和姓名(Name)。行号是基于员工编号的顺序分配的,同一部门的员工将分配连续的行号。 通过使用 ROW_NUMBER() 函数,可以根据特定的分组和排序规则为查询结果中的每一行分配唯一的行号,这在一些情况下非常有用,例如用于分桶、计数或其他分析操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的小羽儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值