Bird
0
0

You want to create a macro that returns a dynamic WHERE clause filtering by multiple optional parameters: status and region. Which approach correctly handles optional parameters in dbt macros?

hard📝 Application Q8 of 15
dbt - Jinja in dbt
You want to create a macro that returns a dynamic WHERE clause filtering by multiple optional parameters: status and region. Which approach correctly handles optional parameters in dbt macros?
AMacros cannot handle optional parameters, use fixed filters only
BWrite separate macros for each parameter and call both always
CUse Jinja if-statements to include filters only if parameters are provided
DUse SQL CASE statements inside the macro to filter dynamically
Step-by-Step Solution
Solution:
  1. Step 1: Understand optional parameter handling in macros

    Jinja allows conditional logic to include SQL parts only if parameters are given.
  2. Step 2: Evaluate options for flexibility

    Use Jinja if-statements to include filters only if parameters are provided uses Jinja if-statements to add filters dynamically, which is the correct approach.
  3. Final Answer:

    Use Jinja if-statements to include filters only if parameters are provided -> Option C
  4. Quick Check:

    Optional filters = Jinja conditionals [OK]
Quick Trick: Use {% if %} in macros for optional filters [OK]
Common Mistakes:
MISTAKES
  • Calling all filters always
  • Using SQL CASE instead of Jinja
  • Thinking macros can't handle optional params

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More dbt Quizzes