人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PostgreSQLで NULL 値の順序はどうやって決めるのでしょう。
例えばひとつの列を普通の値は降順でソートして、かつNULLは最後に持ってくるにはどうしたらいいでしょうか?
OracleではNULL LASTがあるというページしか出てこなかったのですが…。

●質問者: katase_n
●カテゴリ:コンピュータ
✍キーワード:Oracle postgreSQL ひとつ ソート 普通
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● kurokw
●15ポイント

http://www.hatena.ne.jp/1079017459#

PostgreSQLで NULL 値の順序はどうやって決めるのでしょう。 例えばひとつの列を普通の値は降順でソートして、かつNULLは最後に持ってくるにはどうしたらいいでしょうか? .. - 人力検索はてな

URLはダミーです

もっとスマートな方法があるかも知れないですが・・・

CASE等でNULL判定してNULLだったら’1’、それ以外なら’0’みたいなフィールドを作って、それをORDER句の優先条件に含めることで実現はできると思います・・・

ベタな方法ですが・・・

◎質問者からの返答

ありがとうございます。試してみましたがSQL文が結構長くなってしまいますね…。


2 ● kanetetu
●5ポイント

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/psql_k10.htm

PostgreSQL 編10 - 問い合わせ、抽出、ソート、where、like、order by、desc - SAK Streets

こちらのページ参考になるとおもいます。

◎質問者からの返答

ここは時々見ますがNULLの順序までは書いてないですよね…?


3 ● tshioda
●5ポイント

http://localhost/

http://www.hatena.ne.jp/1079017459#

PostgreSQLで NULL 値の順序はどうやって決めるのでしょう。 例えばひとつの列を普通の値は降順でソートして、かつNULLは最後に持ってくるにはどうしたらいいでしょうか? .. - 人力検索はてな

select * from table where fieldname is not null order by fieldname union select * from table where fieldname is null;

みたいな感じでどうでしょう?

◎質問者からの返答

エラーになってしまうのですが、union の前に order by は使えたでしょうか?

union の動作が今ひとつわからないです…。


4 ● god_arrow_k2
●45ポイント

http://ml.postgresql.jp/pipermail/pgsql-jp/2003-December/006932....

[pgsql-jp: 31790] Re: NULLの存在する列の逆順ソート

これでよいと思いますが。

◎質問者からの返答

無事できました。ありがとうございます。


5 ● tshioda
●10ポイント

http://localhost:80/

すみません。確認せずに書いてしまいました。

select

fieldname

from (

select

fieldname

from

tablename

where

fieldname is not null

order by

fieldname desc

) as foo

union all

select

fieldname

from (

select

fieldname

from

tablename

where

fieldname is null

order by fieldname desc

) as bar

;

でいけると思います。

◎質問者からの返答

一度別の名前にするということですね。今後の参考にします。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ