我有一张包含100列的表格。对于少数列,该值始终为null。我想将所有这些列(具有零非空值的列)移动到最右边,这样当我的用户看到表时,他们将首先看到可用的信息。
例如: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
答案 0 :(得分:0)
查询表时会定义列显示的顺序。 如果希望这些列显示在结果集的右端,则需要在查询的SELECT部分中重新排序它们。
所以坚持你的榜样,而不是:
Select column1, column2, column3, column4 FROM test_table
你会:
Select column1, column4, column2, column3 FROM test_table
我不相信有一种方法可以动态地执行此操作,但由于您知道这些列将始终具有空值,因此您应该对此非常有信心。
答案 1 :(得分:0)
使用isnull和case语句 从Employee中选择distinct isnull(id,0) 当id为null时选择不同的大小写,然后将其他0结尾作为来自Employee的id