【Oracle 結論】 order by colum asc 時,null默認被放在最后 order by colum desc 時,null默認被放在最前 nulls first 時,強制null放在最前,不為null的按聲明順序[asc|desc]進行排序 nulls last 時,強制null放在最后,不為null的按聲明順序[asc|desc]進行排序 【MySql 結論】 order by colum asc 時,null默認被放在最前 order by colum desc 時,null默認被放在最后 ORDER BY IF(ISNULL(update_date),0,1) null被強制放在最前,不為null的按聲明順序[asc|desc]進行排序 ORDER BY IF(ISNULL(update_date),1,0) null被強制放在最后,不為null的按聲明順序[asc|desc]進行排序
注:以上結果是在oracle11g及mysql5下的測試結果。
因此當我們在order by時,為了強制說明對於null的排序順序就必須使用到:
針對【oracle】我們就需要使用以下語法:
order by order_col [asc|desc] nulls [first|last]
而針對【mysql】我們則需要使用以下語法:
order by IF(ISNULL(my_field),1,0),my_field;