示例
示例
-- 三个值里取较大/较小
SELECT GREATEST(3, 9, 5), LEAST(3, 9, 5); -- 9, 3| MySQL | 任一参数为 NULL,结果就是 NULL(不忽略) |
|---|---|
| PostgreSQL | 忽略 NULL 参数,只在全为 NULL 时返回 NULL |
| 参数 | 至少 2 个;类型需可比较 |
两库 NULL 语义不同:同一句 SELECT GREATEST(a, b) 在 MySQL 与 PostgreSQL 里可能给出不同答案,迁移前先核对数据中的空值率。
在一组值里取较大者/较小者:多条候选取优场景常用;两库对 NULL 的处理完全相反,是迁移时的隐藏雷区。
-- 三个值里取较大/较小
SELECT GREATEST(3, 9, 5), LEAST(3, 9, 5); -- 9, 3| MySQL | 任一参数为 NULL,结果就是 NULL(不忽略) |
|---|---|
| PostgreSQL | 忽略 NULL 参数,只在全为 NULL 时返回 NULL |
| 参数 | 至少 2 个;类型需可比较 |