我有一个显示结果列表的SQL查询。我的数据库中的每一行都有大约20列,并不是每列都是强制性的。我希望SQL查询的结果是 按填充列的数量排序。顶部空列最少的行,底部空列最多的行。你们有没有想法如何做到这一点?SQL:按空列数排序
我想过在表格中增加一个额外的列,如果每次用户编辑他们的行时都更新,这个数字将表示空列的数量,我可以用我的列表排序。然而,这听起来像不必要的麻烦,但也许没有其他办法?我敢肯定这里有人会知道!
感谢,
桑德
我有一个显示结果列表的SQL查询。我的数据库中的每一行都有大约20列,并不是每列都是强制性的。我希望SQL查询的结果是 按填充列的数量排序。顶部空列最少的行,底部空列最多的行。你们有没有想法如何做到这一点?SQL:按空列数排序
我想过在表格中增加一个额外的列,如果每次用户编辑他们的行时都更新,这个数字将表示空列的数量,我可以用我的列表排序。然而,这听起来像不必要的麻烦,但也许没有其他办法?我敢肯定这里有人会知道!
感谢,
桑德
你可以在几乎任何有大型病例陈述的数据库中做到这一点:
order by ((case when col1 is not null then 1 else 0 end) +
(case when col2 is not null then 1 else 0 end) +
. . .
(case when col20 is not null then 1 else 0 end)
) desc
您可以通过空列的量订购:
order by
case when col1 is null then 1 else 0 end +
case when col2 is null then 1 else 0 end +
case when col3 is null then 1 else 0 end +
...
case when col20 is null then 1 else 0 end
(注意+
在行的结尾:它与整数只有一个列空行数,按升序排序)。
两个头脑,一个虽然:戈登认为同样的事情,它的工作!非常感谢! – user1555076
两个头脑,一个虽然:Andomar认为同样的事情,它的工作!非常感谢! – user1555076