我想在 SQL Server 2012 中执行以下操作:
SELECT UnitPrice * Quantity as SubTotal,
SubTotal * (1-0.13) as Tax,
Tax + SubTotal as Total
FROM Invoice
据我所知,这是不可能像上面写的那样做到的,但是我想知道是否有一种特殊的方法来动态识别列,可以在查询中的其他地方引用它,例如“字段列表” (SELECT 子句的一部分),作为 WHERE 子句的一部分或 ORDER BY 子句中。
任何帮助将不胜感激。
最佳答案
部分解决方案(然而,在许多情况下就足够了)具有构造:
with Query as (
select SubTotal as SubTotal,
SubTotal * (1 - 0.13) as Tax,
SubTotal * (1 - 0.15) as AnotherTax -- etc.
from Invoice
)
select SubTotal,
Tax,
Tax + SubTotal as Total
from Query
关于SQL:在查询的其他部分引用计算列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22895757/