デフォルトでは、SQLは文字の前に数字を並べます。ORDER BY SQLで[0-Z]の代わりに[a-9]を使用したvarchar
私は列 "名前" を持っているのであれば:0-Z(9〜第0、その後、AZ)によるSQLソートので
abc
ab1
a1b
1ba
1bac
b21
を、クエリ
SELECT * FROM ... ORDER BY name
はになります:
1ba
1bac
a1b
ab1
abc
abc1
b21
しかし、私はそれをa-0(最初はaZ、次に0-9)でソートします。
abc
abc1
ab1
a1b
b21
1ba
1bac
クエリでこれを行うにはどうすればよいですか?具体的には、SQLiteでこれをどうやって行うのですか?
Sort MySQL results alphabetically, but with numbers lastで1つの解決策が見つかりましたが、最初のチャートのみが見つかりました。
値は常に3文字ですか? – gbn
['regexp'](http://sqlite.org/lang_expr.html)を使用する[Cインタフェースを使用して関数を作成する](http://www.sqlite.org/c3ref/create_function.html) )演算子を使用して文字と数字を別々の列にヤンクします。 –
@gbnいいえ、長さは非常に長くなります。おそらくそれを示しているはずです: – Nic