我有一个browser.driver.method
查询,我希望可以理解它的简洁性,我已经将其归结为问题所在:
WITH AS
然后我稍后在查询中使用它
WITH XX AS (
SELECT ....,
floor(GREATEST(value*-1, value2) * (value4*value5/value) * -1 * 100)/100 as x,
....
)
这是一大堆行消失的地方,
现在,如果我这样做:
SELECT 1/x as "ratio" from XX
也很奇怪,这会返回相同的结果:
SELECT 2/1*x "ratio" from XX
行返回但SELECT 2*1*x "ratio" from XX
的值不正确。我还试图使用ratio
,但仍会返回错误的结果。奇怪的是,结果实际上是2 * x而不是2 / x
为什么结果不正确,为什么行会消失?
答案 0 :(得分:2)
SELECT 2/1*x "ratio" from XX
相当于
SELECT 2*1*x "ratio" from XX
因为乘法和分数从左到右进行评估。因此,第一个表达式评估为(2 / 1) * x
,而不是2 / (1 * x)
。
2.0 / x
。