SQL: 一次重命名所有变量

SQL: Renaming All Variables at Once

我正在使用 Netezza SQL。我的数据如下所示:

        var1      var2     var3
1  0.8879615  9.145530  9.76198
2  8.3522106  8.921711  5.55693
3 16.1873228  6.099095 29.92102
4  5.1786637 15.209045  6.06162
5  3.8149316 15.078099 18.95941
6 -5.8267485  9.371876 23.20190

问题: 我想重命名此 table 中的所有变量,方法是在其名称末尾添加“_a”,使其看起来像这样:

      var1_a    var2_a   var3_a
1  0.8879615  9.145530  9.76198
2  8.3522106  8.921711  5.55693
3 16.1873228  6.099095 29.92102
4  5.1786637 15.209045  6.06162
5  3.8149316 15.078099 18.95941
6 -5.8267485  9.371876 23.20190

通常,这可以通过单独重命名每个变量来完成。例如:

Create table new_table as select var1 as var1_a, var2 as var2_a, var3 as var3_a from original_table;

我的问题: 假设我的 table 有 100 个变量 - 我不想手动重命名所有这些变量。 有没有办法一次重命名所有这些变量?

谢谢!

您可以一次性动态准备重命名命令并一次性执行它们:

select 'ALTER TABLE ' || table_name ||' RENAME COLUMN ' || column_name ||' TO ' || column_name|| '_a;'  
from _V_SYS_COLUMNS
where table_name = 'yopurtablename'
and table_schema = 'yourtableschemaname'