- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
SELECT TO_NUMBER('*') FROM DUAL
这显然给了我一个异常(exception):
ORA-01722: invalid number
有没有办法“跳过”它并获取 0
或 NULL
?
整个问题:我有 NVARCHAR2
字段,其中包含数字,但几乎不包含;-)(如 *
),我需要从列中选择最大的数字.
是的,我知道这是一个糟糕的设计,但这就是我现在需要的......:-S
UPD:
对于我自己来说,我已经解决了这个问题
COALESCE(TO_NUMBER(REGEXP_SUBSTR(field, '^\d+')), 0)
最佳答案
从Oracle Database 12c Release 2
开始,您可以使用 TO_NUMBER 与 DEFAULT ... ON CONVERSION ERROR
:
SELECT TO_NUMBER('*' DEFAULT 0 ON CONVERSION ERROR) AS "Value"
FROM DUAL;
或CAST
:
SELECT CAST('*' AS NUMBER DEFAULT 0 ON CONVERSION ERROR) AS "Value"
FROM DUAL;
<强> db<>fiddle demo
关于oracle - "Safe"TO_NUMBER(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4486949/
SELECT TO_NUMBER('*') FROM DUAL 这显然给了我一个异常(exception): ORA-01722: invalid number 有没有办法“跳过”它并获取 0 或 N
在 postgres 8.2 版上使用 Greenplum: 当我调用这个函数时: CREATE OR REPLACE FUNCTION test_function(_date date) RETUR
我需要将 CHARACTER VARYING 列转换为 NUMERIC 类型。源列包含如下值:9.9; 99.9;无效的。我使用以下 SQL 指令: ALTER TABLE test ALTER CO
在这个查询中使用 oracle 中的 to_number()。如何编写oracle和mysql数据库的兼容性查询。 SELECT col1 FROM table WHERE condition ORD
今天写sql的时候,发现PG里有一张表的面积字段竟然设置成字符串类型,这样就不能统计使用sum函数了,所以需要将字符串转换成double类型再相加。 select sum(to_number
我有一个主表(以下称为 SURVEY)和一个详细表(以下称为 ANSWERS)。不出所料,ANSWERS 有 SURVEY 问题的答案。 ANSWERS 有一个名为 TEXT 的 VARCHAR2 列
使用 Oracle SQL,当字符串(VARCHAR2 列)可以包含以下任一内容时,如何将字符串转换为数字: 固定符号的数字,例如 -11.496606820938826 SELECT TO_NUMB
我有一个带有数字的 VARCHAR2,写成小数点和小数部分,例如.02。使用时 TO_NUMBER(NUMBER_COLUMN) 我得到一个错误 ORA-01722: invalid number 表
我想使用 postgresql to_number(numberString, format_mask)。我的 numberString 可能包含前导零(我不知道这些零的实际长度和 numberStr
如果记录数超过某个数字 n,则在 varchar2 列的 where 子句中执行 to_number 函数时,我会遇到间歇性问题。我使用 n 是因为没有确切数量的记录发生。在一个 DB 上,它发生在
我有一个表格,其中的数字存储为 varchar2 和“.”作为小数点分隔符(例如“5.92843”)。 我想使用“,”来计算这些数字,因为这是系统默认设置,并使用了以下 to_number 来执行此操
下面的 to_number 格式说明符有什么问题? SELECT TO_NUMBER('0,22', '0,99') * 100 FROM DUAL; 结果是 2200 而不是 22 -- 我做错了什
我在 postgres 中有一个表,其中包含已解析的地址信息。当我运行以下查询时,我得到了正确的结果: select count(*) from address_table where (mod(
我需要从 string 转换程序至decimal带固定小数分隔符 .独立于文化环境。接下来,我知道十进制数在 . 之后只有 6 个小数位。并且 . 之前的位数没有限制.使用 Oracle 文档及其格式
我正在使用 hibernate 分离条件从表(Oracle 数据库)中获取结果。我需要通过提升某些列来获取结果顺序。该列包含数字,但数据类型为 varchar。如果我们不对列应用 to_number(
我正在尝试通过发票编号连接两个表中的数据, LOC NOT NULL VARCHAR2(40) INV_ORG NUMBER 像这样它工作正常: SELECT
根据我对 formatting documentation 的阅读,我没有从 PostgreSQL 的函数“to_number”中得到预期的行为.所以我可能读错了。有人可以对此进行解释,以便我知道在其
我有两个查询在尝试将 CHAR 转换为 NUMBER 时给出错误 ORA-01722: invalid number。 SELECT to_number('NYC TERM') FROM dual;
我在这里遇到过类似的日期问题(to_date 和 nullif 的组合):How to use decode in sql-loader? 很好地解决了。 我的问题是我的 CSV 文件中的数字字段可以
为什么 select * from ( SELECT LEVEL as VAL FROM DUAL CONNECT BY LEVEL = 100 抛出一个 ORA-01722 无效数
我是一名优秀的程序员,十分优秀!