小编Gra*_*ate的帖子

SQL Server 是否只在 SELECT 列表中执行一次计算?

以下面的例子为例:

SELECT <CalculationA> As ColA,
       <CalculationB> As ColB,
       <CalculationA> + <CalculationB> As ColC
FROM TableA
Run Code Online (Sandbox Code Playgroud)

CalculationA 和CalculationB 会分别计算两次吗?
或者优化器是否足够聪明来计算一次并使用结果两次?

我想进行测试以查看自己的结果,但是,我不确定如何检查这样的事情。

我的假设是它会执行两次计算。
在哪种情况下,根据所涉及的计算,使用派生表或嵌套视图会更好吗?考虑以下:

SELECT TableB.ColA,
       TableB.ColB,
       TableB.ColA + TableB.ColB AS ColC,
FROM(    
      SELECT <CalculationA> As ColA,
             <CalculationB> As ColB
      FROM TableA
    ) As TableB
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望计算只执行一次?

请问有人可以证实或反驳我的假设吗?或者指导我如何为自己测试这样的东西?

谢谢。

sql-server view computed-column

30
推荐指数
2
解决办法
3565
查看次数

标签 统计

computed-column ×1

sql-server ×1

view ×1