あなたのNLS_SORT
パラメータはだと思いますBINARY
。ソートでは、文字列はバイナリ表現としてソートされます。BINARY
つまり、大文字が小文字の前に来るということです。
SQL> alter session set nls_sort=binary;
Session altered
SQL> select model from client_source order by model;
MODEL
--------------------
1234
4g
Default
Unknown
default1
ipad
iphone
iphone simulator
ipod
ipod touch
test
この動作は、さまざまなNLS_SORT
値で変更できます。大文字と小文字を区別しないようにするには、接尾辞付きの値をNLS_SORT
使用します。_CI
SQL> alter session set nls_sort=latin_ci;
Session altered
SQL> select model from client_source order by model;
MODEL
--------------------
Default
default1
ipad
iphone
iphone simulator
ipod
ipod touch
test
Unknown
1234
4g
で前の数字を移動できますCASE
:
SQL> SELECT model
2 FROM client_source
3 ORDER BY CASE WHEN regexp_like(model, '^[[:digit:]]')
4 THEN 0
5 ELSE 1
6 END,
7 model;
MODEL
--------------------
1234
4g
Default
default1
ipad
iphone
iphone simulator
ipod
ipod touch
test
Unknown
さらに、NLSSORT
関数を使用して、単一のクエリの並べ替え設定を変更できます。
select model from client_source order by NLSSORT(model, 'NLS_SORT = LATIN_CI');