如何使用captial case字符串执行Oracle sql命令

时间:2016-05-04 02:27:40

标签: sql oracle sorting sql-order-by

我需要按照下面的方式订购我的表格行,它们混合了全部大写字母或首字母大写字母。

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

首先使用Capital字符串对行进行排序的任何帮助都非常感谢。 感谢

1 个答案:

答案 0 :(得分:3)

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

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

默认情况下,Oracle区分大小写,因此这应该有效。