sql查询首先放置null结果

时间:2013-12-04 20:28:13

标签: sql

select * 
from tableA 
order by cast(columnA as int), column B. 

这是我当前的查询脚本。存在列A为空的情况。并且将列A为空的结果行推​​送到末尾。

是否有一种方法可以使columnA为null,将行放在columnA不为null的其他行之前?

感谢。

3 个答案:

答案 0 :(得分:0)

如果您的dbms支持标准SQL,那么这些行中的某些内容应该有效。

select (case when columnA is null then 0 else 1 end) as sort_order, * 
from tableA 
order by sort_order, columnA, columnB;

答案 1 :(得分:0)

尝试如下......它会帮助你......

SELECT * FROM tableA ORDER BY (CASE WHEN columnA IS NULL THEN 1 ELSE 0 END) DESC,
CAST(columnA as int), column B

它在NOT NULL结果

之前显示NULL结果

答案 2 :(得分:0)

我是Oracle的情况,您可以使用order by columnA NULLS FIRST, columnB