如果我希望排序先将所有大写字母排在小写字母后怎么办?
A
B
C
D
a
b
c
d
我尝试搜索网络,我所能找到的就是排序,这将使它成为
a
A
b
B
c
C
等。
但是我希望所有大写字母值先排序然后小写排序。
有什么想法吗?感谢
答案 0 :(得分:4)
尝试按字符的BINARY
值排序。
SELECT column
FROM my_table
ORDER BY NLSSORT(column, 'NLS_SORT = BINARY')
答案 1 :(得分:0)
使用case
表达式根据大写或小写有条件地对列进行排序。然后按原始列排序。
select * from tablename
order by case when upper(col) = col then 1 else 2 end, col
注意:当字符串中只有一个字符或整个字符串为大写或小写字母时,上面的顺序效果很好。