小编典典

SQL:按优先级排序,但最后放置0

sql

我有一个(int)列,称为“优先级”。选择项目时,我希望优先级最高(最低编号)在前,而优先级最低(最高编号)在最后。

但是,没有优先级的项目(当前优先级为0)应在具有优先级的项目之后的其他列中列出。

换一种说法。如果我有以下优先事项:

 1 2 0 0 5 0 8 9

我如何像这样对它们进行排序:

 1 2 5 8 9 0 0 0

我想我可以使用Int.max而不是0,但是0构成了一个很好的默认值,我会尝试保留它。


阅读 205

收藏
2021-03-23

共1个答案

小编典典

尝试:

order by case priority when 0 then 2 else 1 end, priority
2021-03-23