2007年
9月 01
2008.2.27 追記
コメントで教えていただきました下記方法で簡単にできました。
is null asc の指定と 通常の asc の指定をするのがポイントですね。
SELECT id, comment FROM table ORDER BY comment IS NULL ASC, comment ASC;
—–追記ここまで—–
MySQL で昇順にソートすると NULL は一番最初に来ます。
それを最後にできないかということで下記のようなSQL を考えてみました。
SELECT
id,
comment,
CASE WHEN comment IS NULL
THEN 10000
ELSE ASCII(LEFT(comment,1))
END AS dummy
FROM table
ORDER BY dummy ASC, COMMENT ASC
comment カラムを昇順でソートして、NULL の場合は一番最後に NULL がきます。
あまりスマートな方法ではないのですが、これで取り合えず NULL を最後にして昇順でソートするということができました。
ORACLE とかだと下記のように簡単にできますね。
ORDER BY comment ASC NULL LAST
NULLS FIRST
NULL 値を順序の最初にするソートを行なう
NULLS LAST
NULL 値を順序の最後にするソートを行なう
関連する投稿
3 Responses to “MySQL で NULL を一番最後にして昇順にソートする”
Leave a Reply
Additional comments powered by BackType



2月 27th, 2008 at 5:22 am
MySQLの場合、以下のSQLでNULL LAST相当が実現できます。ご参考まで。
SELECT
id,
comment
FROM table
ORDER BY comment IS NULL ASC, COMMENT ASC;
2月 27th, 2008 at 9:54 am
> MeijiK さん
ありがとうございます。
本文にも追記で情報を掲載させていただきました。
12月 30th, 2008 at 5:53 pm
[...] MySQL で NULL を一番最後にして昇順にソートする [...]