gpt4 book ai didi

oracle - "Safe"TO_NUMBER()

转载 作者:行者123 更新时间:2023-12-03 06:00:10 28 4
gpt4 key购买 nike

SELECT TO_NUMBER('*') FROM DUAL

这显然给了我一个异常(exception):

ORA-01722: invalid number

有没有办法“跳过”它并获取 0NULL

整个问题:我有 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com