ホーム » ブログ » SQLでの文字列のorder byについて
このエントリーをはてなブックマークに追加
@2014/06/02

スポンサーリンク
select文でDBから指定した列の順番でレコードを取り出しの際に、order byを使う。
ただ、指定した列は文字列の場合、期待しない順番でレコードを取り出してしまうこともあります。

以下のケースを想像してください。テーブルのuser_id列はintではなく、varcharとの場合、簡単に
select * 
from your_table 
order by user_id ASC

以下のような結果となります:

1	lucy 	29
11	lili	20
2	william 30
3	jobs	56
33	kuccor	55
4	picker	33
5	tom	2

sort順のuser_idをintに変換して、order byを使ったら、正しく表示できます。

select * 
from your_table 
order by convert(int,user_id) ASC

次の結果となる

1	lucy 	29
2	william 30
3	jobs	56
4	picker	33
5	tom	2
11	lili	20
33	kuccor	55

♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
0人
このエントリーをはてなブックマークに追加


★ 当記事を閲覧の方は下記の【関連記事】も閲覧していました。
三昧 様
コメント@2014年06月02日
Gravatar-グローバルに認識されるアバター_zanmai.net
もちろん、intへ変換できない列にはconvert(int,列)を使ってしまうと、エラーとなる。

お名前:

 

EMAIL:

 

URL:

 

認証コード:

zanmai.net-safecode

 


※会員の方は認証コードを要らないから、新規登録をオススメ!

check