Rah*_*hul 2 sql t-sql database
说我有这样的查询:
select ((amount1 - amount2)/ amount1) as chg from t1
where
((amount1 - amount2)/ amount1) > 1 OR
((amount1 - amount2)/ amount1) < 0.3
Run Code Online (Sandbox Code Playgroud)
有没有办法我只能执行一次算术计算,而不是像上面的查询那样进行三次?
编辑:我不确定数据库是否自动优化查询只进行一次这样的计算?我在Sybase上使用T-SQL.
Chr*_*ris 10
从概念上讲,您可以从计算中进行选择,即:
select
calc.amt
from
(select (amt1 - amt2) / amt1 as amt from #tmp) calc
where
calc.amt > 1 OR calc.amt < 0.3
Run Code Online (Sandbox Code Playgroud)
如果SQL无论如何都会将你的代码优化为类似代码,那么不确定是不是最重要的 - 从基本临时表中查询我的查询似乎表明它们以相同的方式执行.
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |