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函数,因为它忽略除第一个字符之外的任何字符.
最好的方法是什么?
对于这种情况,您应该能够按BINARY字符的值排序;
SELECT id, my_varchar2
FROM my_table
ORDER BY NLSSORT(MY_VARCHAR2, 'NLS_SORT = BINARY')
Run Code Online (Sandbox Code Playgroud)
SQLFiddle 在这里.