data-dwh-dbt-project/macros/return_capped_value.sql

21 lines
600 B
MySQL
Raw Permalink Normal View History

2025-01-24 14:17:29 +01:00
/*
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 %}