Hi have this sql query:
x
SELECT CASE
WHEN money BETWEEN 0 and 1000 THEN '1000'
WHEN money BETWEEN 1000 and 2000 THEN '2000'
WHEN money BETWEEN 2000 and 3000 THEN '3000'
.
.
.
.
.
WHEN money BETWEEN 19000 and 20000 THEN '20000'
from bank;
How can I short this query so I don’t use a lot of case statements?
Advertisement
Answer
You can try using mod subtracting the remainder t from you value by division for 1000
SELECT money - MOD( money , 1000 )
FROM bank;
or as suggested by @DM you can also use
FLOOR((money + 999) / 1000) * 1000
the difference should be the same .. both involve function .. but there are nit where condition so this is not in contrast with indexing