根据表中的值对列值重新排序

时间:2019-03-05 03:31:02

标签: sql oracle

我想知道,如何在检索数据的同时按降序对列进行重新排序。

请尝试提供一种解决方案,该解决方案对于任何数量的列都可以通用。

在检索数据时,应按降序重新排列每一行。我试图做类似的排序,但不是基于列,而是行。这是可以实现的。

2 个答案:

答案 0 :(得分:0)

订购时,请尝试使用“ NULLS LAST”选项,例如:

select * from your_table 
  order by col1 desc nulls last,
           col2 desc nulls last,
           col3 desc nulls last,
           col4 desc nulls last;

如果这样做没有帮助,请提供示例数据和您想要获取的结果数据。

答案 1 :(得分:0)

好坏取决于您想要什么结果。如果您希望按填充的第一列对数据进行排序,则应该这样做。

select nvl(col1,nvl(col2,nvl(col3,col4))), 'rest of data'
from testing
order by nvl(col1,nvl(col2,nvl(col3,col4))) desc nulls last;