【发布时间】:2022-01-17 21:18:29
【问题描述】:
我正在尝试使用 dbt 宏来转换调查结果。
我有一个类似的表:
| column1 | column2 |
|---|---|
| often | sometimes |
| never | always |
| ... | ... |
我想把它变成:
| column 1 | column 2 |
|---|---|
| 3 | 2 |
| 1 | 4 |
| ... | ... |
使用以下映射:
| category | value |
|---|---|
| always | 4 |
| often | 3 |
| sometimes | 2 |
| never | 1 |
为此,我编写了以下 sbt 宏:
{% macro class_to_score(class) %}
{% if class == "always" %}
{% set result = 1 %}
{% elif class == "often" %}
{% set result = 2 %}
{% elif class == "sometimes" %}
{% set result = 3 %}
{% elif class == "never" %}
{% set result = 4 %}
{% endif -%}
{{ return(result) }}
{% endmacro %}
然后是下面的sql查询:
{%- set class_to_score = class_to_score -%}
select
{{ set_class_to_score(column1) }} as column1_score,
from
table
但是,我得到了错误:
Syntax error: SELECT list must not be empty at [5:1]
有人知道我为什么收不到任何东西吗?
【问题讨论】: