EC-CUBEでNULL(未入力)が最後になるようソートするのって、少し難しいですよね?

MySQLではNULLは最小の値として扱われるという仕様があり、通常rankをASCで並び替えるとNULL→1→2というようにソートされます。

一方、PostgreSQLの場合は「NULL LAST」がデフォルトですので、rankをASCで並び替えると1→2→NULLという順番でソートされます。

MySQLで昇順かつ、NULLを最後に持ってきたい時のクエリビルダはCASE文を用いて次のようになります。

rank_is_nullはrankがNULLの場合は1になり、NULLでない場合は0になります。
HIDDENなカラムをSELECTし、最初にorderByするのがポイントです。

これで項目がNULLの場合(=未入力)最後に持ってくるようソートができました。
CASE文が苦手が方もいると思いますが、これを期にマスターください!