Usando el procedimiento almacenado en Snowflake, estoy tratando de cambiar el orden de las columnas para una parte de la tabla de datos.
Aquí está mi mesa
column1 column2 column3 column4 column5 --------------------------------------------- Year Country Name City 2020 US Briand NY 2021 US John LA 2021 UK Mark London City Name Year Country Age Paris Jacques 2017 FR 55 Madrid Juan 2015 ES 25 Dublin Steven 2018 IE 37Entonces hay 5 estructuras diferentes en la misma tabla. Las 5 estructuras no tienen el mismo número de columnas, pero el nombre de la columna puede coincidir y la columna que falta se puede llenar con valores nulos. Además, hay una fila en blanco entre cada estructura de datos diferente. La salida debe ser:
Year Country City Name Age ------------------------------------------------- 2020 US NY Briand Null 2021 US LA John Null 2021 UK London Mark Null 2017 FR Paris Jacques 55 2015 ES Madrid Juan 25 2018 IE Dublin Steven 37Así que pensé que la única forma es hacer un procedimiento almacenado, pero no tengo idea de cómo funciona y si es posible resolver mi problema de esta manera.
CREATE OR REPLACE PROCEDURE proc_columns_matching() returns string language javascript as $$ var sql = "select * from countries_pp"; var statement1 = snowflake.createStatement( {sqlText: pp} ); var result_set1 = statement1.execute(); while(result_set1.next() != ''){ var column1= result_set1.getColumnValue(1) } return column1; $$ ; CALL proc_smart_impulse();Así que traté de identificar la celda en blanco para dividir la tabla, pero estoy atascado aquí.
Creo que no puede reordenar las columnas usando los comandos ALTER y la solución recomendada es usar una vista. Para su caso, probablemente requiera usar UNION para atender las diferentes estructuras