当前位置:  开发笔记 > 编程语言 > 正文

SQL Server引用计算列

如何解决《SQLServer引用计算列》经验,为你挑选了2个好方法。

我有一个带有计算列的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选项不会改变任何此类选项.它保持值很好的索引值,但原子性不会改变.



1> Michael Hare..:

没有.

select中单行的所有结果都是原子的.也就是说,您可以将它们全部视为并行发生,并且不能相互依赖.

如果您指的是计算列,则需要更新公式的输入,以便在选择期间更改结果.

将计算列视为宏或迷你视图,只要您调用它们就会注入一些计算.

例如,这些列将始终相同:

-- assume that 'Calc' is a computed column equal to Salaray*.25
SELECT Calc, Salary*.25 Calc2 FROM YourTable

另请注意,该persisted选项不会改变任何此类选项.它保持值很好的索引值,但原子性不会改变.



2> erikkallen..:

不幸的是不是真的,但有时值得的解决方法是

SELECT [calcval1], [calcval1] * .25 AS [calcval2]
FROM (SELECT [calcval1] = CASE Statement FROM whatever WHERE whatever)

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有