goo blog サービス終了のお知らせ 

おれログ

ただ忘れないようにメモるのみ

PostgreSQL文字列型の数字の並び替え

2017-12-22 09:23:25 | PostgreSQL

文字列型の数字の並び替え

テーブル_a

数値1    , 数値2

12345   , 12345  

456       , 456.5

78         , 78.3

これを昇順で並べ替え


数値1で昇順

SELECT 数値1 , 数値2 FROM テーブル_a ORDER BY to_number(数値1,'99999')

 

結果

78         , 78.3

456       , 456.5

12345   , 12345  


数値2を指定して同じように実行すると、エラーになる。

numericがどうとか仰られる。

to_number(数値1,'99999') この部分を lpad(数値2, 10, '0') に変更

数値2の先頭を「0」で埋めて並び替え

 

数値1             , 数値2

0000012345   , 0000012345  

0000000456   , 00000456.5

0000000078   , 00000078.3

こんなイメージにして並び替え


SELECT 数値1 , 数値2 FROM テーブル_a ORDER BY lpad(数値2, 10, '0')

結果

数値1    , 数値2

78         , 78.3

456       , 456.5

12345   , 12345  







最新の画像もっと見る

コメントを投稿