我有一個sql查詢,其中我有一個計算字段來計算貢獻幅度。我得到它顯示和數學運作良好。我遇到的問題是我只想顯示貢獻幅度低於0.25的記錄。我知道你不能在where子句中使用列別名。我想知道做這件事的最好方法是什麼。我也爲此使用Visual Studio。在SQL查詢中使用計算字段
2
A
回答
4
SELECT *
FROM (
SELECT m.*,
compute_margin(field1, field2) AS margin
FROM mytable m
) q
WHERE margin < 0.25
1
不能使用列別名(除非你使用你原來的查詢作爲子查詢),但您可以使用您使用定義的計算值的表達式。
例如,如果您的查詢是現在這樣:
select
contribution_amount,
total_amount,
contribution_amount/total_amount as contribution_margin
from records
你可以這樣做:
select
contribution_amount,
total_amount,
contribution_amount/total_amount as contribution_margin
from records
where contribution_amount/total_amount < 0.25
或者這樣:
select * from
(
select
contribution_amount,
total_amount,
contribution_amount/total_amount as contribution_margin
from records
)
where contribution_margin < 0.25
(我個人認爲第一個版本是可取的,但兩者都可能表現相同)
0
您可以
- 重複在計算where子句
- 包裹在一個表中表達所述查詢(CTE或派生表),並使用該別名在where子句
- 分配別名在
cross apply
。
爲了讓最後一種方法
select doubled_schema_id,*
from sys.objects
cross apply (select schema_id*2 as doubled_schema_id) c
where doubled_schema_id= 2
0
兩種方式的一個例子,要麼Quassnoi發佈解決方案(你也可以使用一個CTE這是類似)
或WHERE compute_margin(field1, field2) < 0.25
相關問題
- 1. SQL查詢中的計算字段值
- 2. 查詢與計算字段
- 3. Sql服務器 - 使用計算字段聯接子查詢
- 4. 如何計算使用SQL查詢拼寫錯誤的字段?
- 5. 在一個SQL查詢中計算大量布爾字段?
- 6. 在LightSwitch查詢中使用計算字段
- 7. 如何在我的LightSwitch查詢中使用計算的字段?
- 8. 在同一查詢中重複使用計算的字段進行新計算
- 9. 如何在同一查詢的另一個字段中使用計算字段
- 10. SQL計算查詢
- 11. SQL查詢計算
- 12. SQL查詢中的計算
- 13. 做計算在SQL查詢
- 14. SQL計算字段
- 15. 通過SQL查詢計算MS Access中的空白字段
- 16. SQL查詢:計算總計
- 17. 計算SQL查詢中的行與使用PHP更新字段相比較
- 18. MS Access查詢計算字段
- 19. 只需查詢計算字段
- 20. 在Excel SQL查詢過程中計算
- 21. 在rails 2.3.x中計算SQL查詢
- 22. 在SQL查詢中計算日期
- 23. 在SQL查詢中計算平均值
- 24. SQL Server 2012查詢計算計算
- 25. 在SQL中連接計算的字段
- 26. SQL查詢從計算出生年齡和日期字段
- 27. SQL查詢來添加計算字段,比較數據行
- 28. 訪問使用Where子句中的一個表中的字段創建計算字段的SQL查詢
- 29. 在查詢中重複使用計算
- 30. 在管理中使用計算字段