我有一个带有计算列的select语句,我想在另一个中使用一个计算列的值.这可能吗?这是一个人为的例子来展示我想要做的事情.
SELECT [calcval1] = CASE Statement, [calcval2] = [calcval1] * .25
Michael Hare.. 21
没有.
select中单行的所有结果都是原子的.也就是说,您可以将它们全部视为并行发生,并且不能相互依赖.
如果您指的是计算列,则需要更新公式的输入,以便在选择期间更改结果.
将计算列视为宏或迷你视图,只要您调用它们就会注入一些计算.
例如,这些列将始终相同:
-- assume that 'Calc' is a computed column equal to Salaray*.25 SELECT Calc, Salary*.25 Calc2 FROM YourTable
另请注意,该persisted
选项不会改变任何此类选项.它保持值很好的索引值,但原子性不会改变.
没有.
select中单行的所有结果都是原子的.也就是说,您可以将它们全部视为并行发生,并且不能相互依赖.
如果您指的是计算列,则需要更新公式的输入,以便在选择期间更改结果.
将计算列视为宏或迷你视图,只要您调用它们就会注入一些计算.
例如,这些列将始终相同:
-- assume that 'Calc' is a computed column equal to Salaray*.25 SELECT Calc, Salary*.25 Calc2 FROM YourTable
另请注意,该persisted
选项不会改变任何此类选项.它保持值很好的索引值,但原子性不会改变.
不幸的是不是真的,但有时值得的解决方法是
SELECT [calcval1], [calcval1] * .25 AS [calcval2] FROM (SELECT [calcval1] = CASE Statement FROM whatever WHERE whatever)