Orace SQL - 首先使用所有大写字母进行排序

时间:2016-06-02 02:49:11

标签: sql oracle oracle11g

如果我希望排序先将所有大写字母排在小写字母后怎么办?

A
B
C
D
a
b
c
d

我尝试搜索网络,我所能找到的就是排序,这将使它成为

a
A
b
B
c
C

等。

但是我希望所有大写字母值先排序然后小写排序。

有什么想法吗?感谢

2 个答案:

答案 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

注意:当字符串中只有一个字符或整个字符串为大写或小写字母时,上面的顺序效果很好。