在 SQL 查询中使用计算字段
我有一个 sql 查询,其中有一个计算字段,用于计算边际贡献。我让它显示出来并且数学工作正常。我遇到的问题是我只想显示贡献边际低于 0.25 的记录。我知道你不能在 where 子句中使用列别名。我想知道执行此操作的最佳方法是什么。我也为此使用 Visual Studio。
I have a sql query in which i have a calculated field which calculates the Contribution Margin. I get it to display and the math works fine. The problem i'm having is that i want to only display the records in which the Contribution Margin is lower than 0.25. I know you cant use column alias in the where clause. I was wondering what the best way to go about doing this would be. I'm also using Visual Studio for this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您不能使用列别名(除非您使用原始查询作为子查询),但您可以使用用于定义计算值的表达式。
例如,如果您现在的查询是这样的:
您可以这样做:
或者这样:(
我个人认为第一个版本更好,但两者可能执行相同的操作)
You can't use the column alias (unless you use your original query as a subquery), but you can use the expression that you're using to define the calculated value.
For example, if your query is this now:
You could do this:
Or this:
(Personally I find the first version to be preferable, but both will likely perform the same)
您可以
举一个最后一种方法的例子
You can either
cross apply
.To give an example of the last approach
有两种方法,Quassnoi 发布的解决方案(您也可以使用类似的 CTE)
或 WHEREcompute_margin(field1, field2)
WHEREcompute_margin(field1, field2)
0.25
two ways, either the solution that Quassnoi posted(you can also use a CTE which is similar)
or
WHERE compute_margin(field1, field2) < 0.25