首页/数据/SQL 速查/SELECT 计算列与表达式
本包目录(311 条)

SELECT 计算列与表达式

在 SELECT 里直接做算术得到派生列:支持括号、四则运算与取模;注意整数除法与除零行为在 MySQL、PostgreSQL 间不同。

SQL 速查数据更新于 2026-10-12
运算符+ - * / %(取模也可用 MOD)
优先级同数学:* / % 高于 + -,括号可改变
空值NULL 参与运算结果仍为 NULL

示例

示例
SELECT item_id,
       price,
       qty,
       price * qty                 AS amount,
       ROUND(price * qty * 0.06, 2) AS tax
FROM order_items;

整数除法差异

整数除法差异
-- MySQL:自动得到小数
SELECT 5 / 2;              -- 2.5000

-- PostgreSQL:整数相除截断
SELECT 5 / 2;              -- 2
SELECT 5::numeric / 2;     -- 2.5000000000000000
除数为 0 时 MySQL 返回 NULL 并给出告警,PostgreSQL 直接报 division by zero,业务计算前先兜底。

易错点

  • PostgreSQL 里两个整数列相除会截断,金额/比率计算先 CAST 成 numeric
  • 浮点数求和与比较存在精度误差,涉及金额用 DECIMAL/numeric 类型

数据来源与参考

  • MySQL 8.0 Reference Manual · Arithmetic Operators
  • PostgreSQL Documentation · Mathematical Operators
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌