SQL SELECT:在'之后使用指定的值作为'在下一个选定的参数之前' as'

时间:2015-11-20 14:20:41

标签: sql variables select

我需要在下一个语句中使用sql中两个函数的计算值(' as'关键字)。我想使用它,因为在这种情况下计算时间减少了x2。

我有以下声明:

SELECT f1() as f_1, f2() as f_2, f_1 - f_2 as f1_minus_f2 FROM mytable

其中f1(),f2() - 一些函数

1 个答案:

答案 0 :(得分:2)

1)你可以使用表达式本身(如果函数是确定性的):

SELECT f1() as f_1, f2() as f_2, f1() - f2() as f1_minus_f2 
FROM mytable

2)使用子查询:

SELECT sub.f_1, sub.f_2, sub.f_1 - sub.f_2 as f1_minus_f2
FROM (
   SELECT f1() as f_1, f2() as f_2
   FROM mytable
) sub

您无法使用它的原因是all-at-once规则:

  

" All-at-Once Operations"意味着所有表达式都相同   逻辑查询过程阶段在逻辑上同时进行评估。