在Oracle上将结果排序为ASCII

Thi*_*aes 2 sorting oracle ascii

我正在做一个返回VARCHAR2和其他一些字段的查询.正如我在Oracle文档中发现的那样,我正在通过此VARCHAR2对结果进行排序,并且遇到与语言排序相关的一些问题.例如:

SELECT id, my_varchar2 from my_table ORDER BY MY_VARCHAR2;
Run Code Online (Sandbox Code Playgroud)

将返回:

ID     MY_VARCHAR2
------ -----------
 3648  A
 3649  B
 6504  C
 7317  D
 3647  0
Run Code Online (Sandbox Code Playgroud)

我需要它返回字符串"0"作为此序列的第一个元素,因为它将比较ASCII值.字符串可以有多个字符,因此我不能使用ascii函数,因为它忽略除第一个字符之外的任何字符.

最好的方法是什么?

Joa*_*son 5

对于这种情况,您应该能够按BINARY字符的值排序;

SELECT id, my_varchar2 
FROM my_table 
ORDER BY NLSSORT(MY_VARCHAR2, 'NLS_SORT = BINARY')
Run Code Online (Sandbox Code Playgroud)

SQLFiddle 在这里.