タグ

ブックマーク / yukiten.com (1)

  • 【SQL】ORDER BY で NULL を最後にする場合の注意点 | 雪の天秤

    SQLでNULL値を含むカラムでソートを実施する場合、何も意識しないと最小の値として処理されてしまいます。 例えば次のようなレコードが存在する場合 test_tab num1null32 select * from test_tab order by num asc; こんな書き方をすると次のような順で出力されます。 test_tab numnull123 null値が最小として扱われてしまいます。 null値を最後(この場合は最大)と扱いたい場合は下記のように書きます。 select * from test_tab order by num is null asc; test_tab num132null お気付きとは思いますが、この書き方だけでは、null値が最大として扱われただけであって、通常のソートは行われていません。 そのため、下記のように書き直します。 select * fro

    issm
    issm 2014/06/06
    "ORDER BY 時に利用出来る、カラム is null [asc|desc] はあくまでnull値の取扱をどうするか決めているだけなので、null以外の値にはソートが効いていない"
  • 1