错误示例
错误示例
SELECT price * qty AS amount
FROM order_items
WHERE amount > 100; -- ERROR: Unknown column 'amount'两种改写
两种改写
-- 1) 重复写表达式
SELECT price * qty AS amount
FROM order_items
WHERE price * qty > 100;
-- 2) 子查询包装
SELECT *
FROM (SELECT price * qty AS amount FROM order_items) t
WHERE t.amount > 100;| WHERE | 两库都不能用别名(逻辑上先于 SELECT) |
|---|---|
| ORDER BY | 两库都可以用别名 |
| MySQL 扩展 | GROUP BY / HAVING 可用别名 |
| PostgreSQL | HAVING 中不能引用 SELECT 别名,需写原表达式或子查询 |