Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL算术无效数字_Sql_Oracle_Math - Fatal编程技术网

SQL算术无效数字

SQL算术无效数字,sql,oracle,math,Sql,Oracle,Math,这可能非常简单,但我自己还没有找到解决方案 我只想作为查询的一部分执行此操作 1 - (RELEASE_QUAN/TOTAL_QTY_ORD) 这给了我一个错误(我非常确定这就是造成错误的原因) ORA-01722:无效号码 这个很好用 (RELEASE_QUAN/TOTAL_QTY_ORD) 为什么我不能做第一行 # 完整查询 SELECT REQUEST_DATE, Company, CUSTNO, MISC_ITEM || '-' || CUSER1, V_RELEASES_COMB

这可能非常简单,但我自己还没有找到解决方案

我只想作为查询的一部分执行此操作

1 - (RELEASE_QUAN/TOTAL_QTY_ORD)
这给了我一个错误(我非常确定这就是造成错误的原因)

ORA-01722:无效号码

这个很好用

(RELEASE_QUAN/TOTAL_QTY_ORD)
为什么我不能做第一行

# 完整查询

SELECT

REQUEST_DATE,
Company,
CUSTNO,
MISC_ITEM || '-' || CUSER1,
V_RELEASES_COMB_ACCT_LINK.EXTENDED_PRICE * ((RELEASE_QUAN/TOTAL_QTY_ORD)) ||  1 - (RELEASE_QUAN/TOTAL_QTY_ORD) 


FROM
IQMS.V_RELEASES_COMB_ACCT_LINK V_RELEASES_COMB_ACCT_LINK

INNER JOIN
 IQMS.V_GLACCT V_GLACCT
ON
 V_RELEASES_COMB_ACCT_LINK.GLACCT_ID = V_GLACCT.ID

正如我所想,这是一个真正简单的解决方案。我就是想不起来

我用括号括住了这个表达式

(1 - (RELEASE_QUAN/TOTAL_QTY_ORD))

现在可以了。

正如我所想,这是一个非常简单的解决方案。我就是想不起来

我用括号括住了这个表达式

(1 - (RELEASE_QUAN/TOTAL_QTY_ORD))

它现在可以工作了。

您正在混合字符串串联和乘法

在表达式中

V_RELEASES_COMB_ACCT_LINK.EXTENDED_PRICE * ((RELEASE_QUAN/TOTAL_QTY_ORD)) ||  1 - (RELEASE_QUAN/TOTAL_QTY_ORD) 
它显示为表达式的计算结果为

(V_RELEASES_COMB_ACCT_LINK.EXTENDED_PRICE * ((RELEASE_QUAN/TOTAL_QTY_ORD)) || 1) - (RELEASE_QUAN/TOTAL_QTY_ORD) 

您正在混合字符串串联和乘法

在表达式中

V_RELEASES_COMB_ACCT_LINK.EXTENDED_PRICE * ((RELEASE_QUAN/TOTAL_QTY_ORD)) ||  1 - (RELEASE_QUAN/TOTAL_QTY_ORD) 
它显示为表达式的计算结果为

(V_RELEASES_COMB_ACCT_LINK.EXTENDED_PRICE * ((RELEASE_QUAN/TOTAL_QTY_ORD)) || 1) - (RELEASE_QUAN/TOTAL_QTY_ORD) 

我不知道从“1”中减去一个有效的表达式怎么会导致这个错误。你能分享完整的查询吗?这个表达式不应该产生ORA-01722。我现在将添加完整的查询,但是是的。我认为不应该,但这似乎是
RELEASE\u QUAN
TOTAL\u quant\u ORD
有效数字的值?总数量订单不为空?现在可以了。它只是需要用括号围起来。我只是一开始没有想到它们。我不知道从“1”中减去一个有效的表达式会导致这个错误。你能分享完整的查询吗?这个表达式不应该产生ORA-01722。我现在将添加完整的查询,但是是的。我认为不应该,但这似乎是
RELEASE\u QUAN
TOTAL\u quant\u ORD
有效数字的值?总数量订单不为空?现在可以了。它只是需要用括号围起来。我只是一开始没有想到他们的答案比OP的答案好得多:这至少给出了一个解释。比OP的答案好得多:这至少给出了一个解释。严格地说,这仍然是非常糟糕的编码。如果希望将计算的数值结果连接到较长的字符串中,则应将数值结果包装在
to_CHAR()
函数中,以明确表示希望将结果视为字符串而不是数字。然后,例如,如果结果是0.9207923048,但您只想连接0.92,您可以很容易地做到:
到_CHAR(1-…,'0.99')
,等等。严格地说,这仍然是非常糟糕的编码。如果希望将计算的数值结果连接到较长的字符串中,则应将数值结果包装在
to_CHAR()
函数中,以明确表示希望将结果视为字符串而不是数字。然后,例如,如果结果是0.9207923048,但您只想连接0.92,那么您可以很容易地做到:
到_CHAR(1-…,'0.99')
,等等。