You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle SQL的SELECT语句中实现自定义列的除法运算?

解决Oracle SQL ORA-01722无效数字错误

错误原因

你当前SQL里的'Num1' / 'Num2'是问题核心:单引号包裹的是字符串字面量,不是你定义的列别名。Oracle会尝试把字符串'Num1'转换成数字进行除法运算,这显然会失败,所以抛出ORA-01722错误。

修正后的SQL写法

因为Num1和Num2是你硬编码的固定数值,最简单的写法就是直接用数值计算:

SELECT 
    REQUESTID AS "Request ID",
    10 AS "Num1",
    5 AS "Num2",
    10 / 5 AS "N1_DividedBy_N2_Result"
FROM 
    RM.CUSTINCDT;

如果后续需要让Num1和Num2是动态列(比如从表中取值),可以用子查询/CTE先定义这两个列,再引用:

WITH cte AS (
    SELECT 
        REQUESTID AS "Request ID",
        10 AS "Num1",
        5 AS "Num2"
    FROM RM.CUSTINCDT
)
SELECT 
    "Request ID",
    "Num1",
    "Num2",
    "Num1" / "Num2" AS "N1_DividedBy_N2_Result"
FROM cte;

执行结果

修正后执行就能得到你期望的结果:

Request IDNum1Num2N1_DividedBy_N2_Result
141114871052
141165221052
141164771052
141164251052

内容的提问来源于stack exchange,提问作者Student_OKIE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 00:53:21