Решение типа SQL Max(something,0)
Вопрос
Я хотел бы сделать следующее:
ВЫБЕРИТЕ сумму (max(поле-10 000,0)) из ТАБЛИЦЫ
например, я хочу, чтобы было суммировано поле-10 000, но если поле-10 000 < 0, затем я хочу, чтобы он добавил 0.
есть какие-нибудь предложения?
Карл
Решение
ANSI
синтаксис (поддерживается SQL Server
, Oracle
, MySQL
и PostgreSQL
):
SELECT SUM(CASE WHEN FIELD < 10000 THEN 0 ELSE FIELD - 10000 END)
FROM mytable
Используя GREATEST
(не поддерживается SQL Server
):
SELECT SUM(GREATEST(field - 10000, 0))
FROM mytable
Не связан с StackOverflow