基于NULL值的表列排序

时间:2017-02-23 09:45:14

标签: sql sql-server sql-server-2008

我想根据Column1值对column2进行排序。我想基于NULL值拆分column1数据。在评估column1

中的值时,将显示最终查询结果
   Column1    Column2 
    NULL         100
    NULL          60
    NULL          90
    10            22
    20            40
    05            35
    15            20
    40            10
    30            25
    20            30

Would become:

   Column1     Column2 
    20            40
    05            35
    20            30
    30            25
    10            22
    15            20
    40            10
    NULL         100
    NULL          90
    NULL          60

Thanks

3 个答案:

答案 0 :(得分:5)

您可以在order by子句中使用案例,如下所示:

Select * from t
Order by case when column1 is null then 1 else 0 end, column2 desc

答案 1 :(得分:2)

通过

在订单中使用案例
ORDER BY case when column1 is null then 1 else 0 end, column2 desc

答案 2 :(得分:2)

SELECT 1 AS Grp, column2
FROM T 
WHERE column1 IS NOT NULL
UNION ALL
SELECT 2 AS Grp, column2 
FROM T 
WHERE column1 IS NULL
ORDER BY Grp, column2;

这是GurV方法的替代方案,它实际上可以从索引中受益。

GurV的方法:

enter image description here

联盟方法:

enter image description here