试着这样做:
SELECT CASE WHEN field = true THEN one * another ELSE one END as case_field
FROM table WHERE case_field >= 9000
Run Code Online (Sandbox Code Playgroud)
并收到case_field不存在的错误.
是否可以在不重复CASE的情况下执行此操作?
看起来PostgresSQL支持派生表
SELECT * FROM
(
SELECT CASE WHEN field = true THEN one * another ELSE one END as case_field
FROM table
) AS derived
WHERE case_field >= 9000
Run Code Online (Sandbox Code Playgroud)
您可能希望检查它对执行计划没有任何不利影响.
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |