sql - 将所有空列(非空值为零的列)移动到表的最右侧
问题描述
我有一张有 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
解决方案
列的显示顺序是在查询表时定义的。如果您希望这些列显示在结果集的右端,则需要在查询的 SELECT 部分中对它们重新排序。
所以要坚持你的例子,而不是:
Select column1, column2, column3, column4 FROM test_table
你将会拥有:
Select column1, column4, column2, column3 FROM test_table
我不相信有一种方法可以动态地执行此操作,但是由于您知道这些列将始终具有空值,因此您应该对此充满信心。
推荐阅读
- javascript - HTTP cookie 如何运作?
- primefaces - Primefaces 调用 javax.faces 2.2 方法,但 2.1 在 Websphere 9 的路径中
- java - 无法使用宿舍从 TemporalAccessor 获取 LocalDate
- javascript - 在 Reactjs 中隐藏滚动元素?
- r - R包小插曲
- android - 作业调度程序 - 如何在不启动应用程序的情况下在后台运行活动
- multithreading - sqlite数据库锁多线程问题
- python - Python不一致使用写入csv文件的选项卡
- orientdb - Gremlin:查找具有重复项的项目名称(按名称)
- python - 如何修改sql文件中的特定行?