20 lines
600 B
SQL
20 lines
600 B
SQL
/*
|
|
This macro caps a given value between a specified bottom and top limit,
|
|
returning `NULL` if the input value is `NULL`.
|
|
|
|
It uses the `LEAST` and `GREATEST` SQL functions to enforce the caps while
|
|
preserving the `NULL` values in the input.
|
|
|
|
Parameters:
|
|
- `value`: The value to be capped.
|
|
- `cap_bottom`: The minimum limit for the value.
|
|
- `cap_top`: The maximum limit for the value.
|
|
|
|
*/
|
|
{% macro return_capped_value(value, cap_bottom, cap_top) %}
|
|
CASE
|
|
WHEN {{ value }} IS NULL THEN NULL
|
|
ELSE LEAST({{ cap_top }}, GREATEST({{ cap_bottom }}, {{ value }}))
|
|
END
|
|
{% endmacro %}
|
|
|