次のようなテーブルがある。
code, name
----------
10,AAA
20,BBB
101,CCC
1000,DDD
A100,XXX
codeでソートをかけるんだけど、普通は↓。
SELECT * FROM table_name ORDER BY code;
code, name
----------
10,AAA
101,CCC
20,BBB
1000,DDD
A100,XXX
コードを数字として評価してほしい要望がきまして↓。
SELECT * FROM table_name ORDER BY CAST(code AS INTEGER);
エラー
(A100がキャストできない。A100がなければ可能だけどね)
それではこれ↓でどう?
SELECT * FROM table_name ORDER BY LPAD(code, 10, '0');
code, name
----------
10,AAA
20,BBB
101,CCC
1000,DDD
A100,XXX
もっといい方法(ただし簡単にできて)ないかしら。
0 件のコメント:
コメントを投稿