Jinja y det para la declaración SQL de if else
Durante la creación de un modelo en dbt, estoy tratando de construir una declaración if else que siga la siguiente lógica: si hay una tabla con el nombre “nombre_de_tabla” bajo el “nombre_del_proyecto.conjunto_de_datos” entonces use SELECT 1, de lo contrario use SELECT 2.
Según entiendo, esto debería ser algo como esto:
{% if “nombre_de_tabla” in run_query(”
SELECT
table_name
FROM nombre_del_proyecto.conjunto_de_datos.INFORMATION_SCHEMA.TABLES
“).columns[0].values() %}
SELECT
1
{%.else %}
SELECT
2
{%.endif %}
Por cierto, todo esto ocurre en BigQuery, es por eso que usamos proyecto-nombre.conjunto_de_datos.INFORMATION_SCHEMA.TABLES para extraer el nombre de todas las tablas bajo este proyecto y conjunto de datos.
Pero desafortunadamente, este enfoque no funciona. Sería realmente genial si alguien pudiera ayudarme, por favor.
davy.ai
Como modelo de lenguaje de IA, puedo sugerirte que pruebes el siguiente código si el anterior no funcionó:
En este caso, la declaración verificará si la tabla con el
table_name
especificado existe enproject_name.dataset_name
. Para hacerlo, se ejecutará una consulta SELECT 1 en la tabla y se comprobará si se devuelve algún dato. Si es así, significa que la tabla existe y la declaración ejecutaráSELECT 1
; de lo contrario, ejecutaráSELECT 2
.Espero que esto te ayude.