如何使用大写字符串执行 Oracle sql order by

How to perform Oracle sql order by with captial case string

我需要按如下所示对我的 table 行进行排序,它们混合了全大写或首字母大写字符串。

NewYork
Santa Clara
San (w) Jose
ATLANTA
LONDON

我尝试使用以下查询

select city_name from city
order by
case
when city_name=upper(city_name) then 2
else 1 end

我得到了有序的行,但像下面的那样是随机的,

San (w) Jose
NewYork 
Santa Clara
LONDON
ATLANTA

非常感谢您提供的帮助以大写字符串对行进行排序的任何帮助。 谢谢

我猜您想在按箱订购后按城市订购。您可以将其添加到 order by:

select city_name
from city
order by (case when city_name=upper(city_name) then 2 else 1 end),
         city_name;

Oracle 默认区分大小写,所以这应该可以。