Saltar al contenido

Declarar una variable en RedShift

Posteriormente a consultar especialistas en este tema, programadores de diversas ramas y profesores hemos dado con la solución al problema y la dejamos plasmada en este post.

Solución:

La respuesta de Slavik Meltser es genial. Como una variación de este tema, también puede usar una construcción CON:

WITH tmp_variables AS (
SELECT 
   '2015-01-01'::DATE AS StartDate, 
   'some string'      AS some_value,
   5556::BIGINT       AS some_id
)

SELECT *
FROM Orders
WHERE OrderDate >= (SELECT StartDate FROM tmp_variables);

En realidad, puede simular una variable usando una tabla temporal, cree una, establecer datos y usted es bueno para ir.

Algo como esto:

CREATE TEMP TABLE tmp_variables AS SELECT 
   '2015-01-01'::DATE AS StartDate, 
   'some string'      AS some_value,
   5556::BIGINT       AS some_id;

SELECT *
FROM Orders
WHERE OrderDate >= (SELECT StartDate FROM tmp_variables);

La tabla temporal se eliminará después de la ejecución de la transacción.
Las tablas temporales están vinculadas por sesión (conexión), por lo que no se pueden compartir entre sesiones.

No, Amazon Redshift no tiene el concepto de variables. Redshift se presenta como PostgreSQL, pero está muy modificado.

En la conferencia re:Invent de AWS de 2014 se mencionaron las funciones definidas por el usuario, que podrían satisfacer algunas de sus necesidades.

Actualización en 2016: Las funciones escalares definidas por el usuario pueden realizar cálculos, pero no pueden actuar como variables almacenadas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *