首页 > 解决方案 > 将所有空列(非空值为零的列)移动到表的最右侧

问题描述

我有一张有 100 列的表。对于少数列,该值始终为空。我想将所有此类列(具有零非空值的列)移动到最右侧,以便当我的用户看到表格时,他们将首先看到可用信息。

例如:test_table

**column1 | column2 | column3 | column4**
   a      | null    | null    |     1  
   b      | null    | null    |     2  
   c      | null    | null    |     3  

插入后,我想让 test_table 如下表所示

**column1 | column4 | column2 | column3**
   a      |     1   | null    | null
   b      |     2   | null    | null
   c      |     3   | null    | null

标签: sqlpostgresql

解决方案


列的显示顺序是在查询表时定义的。如果您希望这些列显示在结果集的右端,则需要在查询的 SELECT 部分中对它们重新排序。

所以要坚持你的例子,而不是:

Select column1, column2, column3, column4 FROM test_table

你将会拥有:

Select column1, column4, column2, column3 FROM test_table

我不相信有一种方法可以动态地执行此操作,但是由于您知道这些列将始终具有空值,因此您应该对此充满信心。


推荐阅读