Oracle中Is NaN 和 IS Infinite 的用法

本文介绍如何在Oracle数据库中使用ISNaN和ISINFINITE函数来判断BINARY_DOUBLE和BINARY_FLOAT类型的列是否为非数字(NaN)或无限值(INF/-INF)。通过创建示例表并插入不同类型的数值进行演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-- IS NaN 和 IS INFINIT,不要用 PL/SQL Developer 作此实验,可以用 SQL*Plus
-- 这两个东西怎样用? 其实就和 IS NULL 一样。 NULL 用于在数据库
-- 的所有数据类型的列中存储“不知道”,然后用 IS NULL 来判断。
-- 现在 NaN 和 'INF','-INF' 用于在 BINARY_DOUBL/BINARY_FLOAT 浮点类型
-- 的列中存储“不是数字”和“无限数字”,然后用 IS NaN 和 IS INFINIT 来判断。

DROP TABLE float_point_demo;

CREATE TABLE float_point_demo
  (dec_num NUMBER(10,2), bin_double BINARY_DOUBLE, bin_float BINARY_FLOAT);

INSERT INTO float_point_demo
  VALUES (1234.56,1234.56,1234.56);
 
Insert INTO float_point_demo
  VALUES (2,'NaN','NaN');

Insert INTO float_point_demo
  VALUES (3,'INF','-INF');

SELECT * FROM float_point_demo;

SELECT * FROM float_point_demo WHERE bin_float IS NaN;

SELECT * FROM float_point_demo WHERE bin_float IS INFINITE;

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值