#python #sql #snowflake-cloud-data-platform #alter-table #snowsql
#python #sql #snowflake-cloud-data-platform #alter-table #snowsql
Вопрос:
У меня есть список всех имен столбцов, которые нужно удалить из нескольких таблиц в схеме, но не все имена столбцов в списке присутствуют во всех таблицах.
Для схемы и имени таблицы, которые у меня есть, могу ли я в одном запросе проверить, соответствуют ли столбцы именам столбцов в списке, просто отбросьте это
Допустим, список столбцов для удаления равен
Drop_col = ['AB',' BC', FG', 'TR']
Но в моей TABLE1 в списке столбцов есть только ‘BC’, ‘TR’
Query = ALTER TABLE SCHEMA_NAME.TABLE1 DROP COLUMN IN ({Drop}).format (Drop = Drop_col)
Что-то вроде этого?? или какие-либо другие предложения??
Ответ №1:
Для достижения этого вы можете использовать представление СТОЛБЦОВ и хранимую процедуру.
1- Передайте список столбцов в хранимую процедуру
2- Используя COLUMNS view, получаем список таблицы, результаты столбца
3- Выполните итерацию по результирующему набору и удалите столбцы
https://docs.snowflake.com/en/sql-reference/info-schema/columns.html
https://community.snowflake.com/s/article/How-to-scan-Result-set-in-stored-procedures
Комментарии:
1. Я не хочу использовать хранимые процедуры