mysql和oracle查询排序

一、简单排序(number)

Mysql:

ASC 升序 空——小——大

Desc 降序 大——小——空

Oracle:

ASC 升序 小——大——空

Desc 降序 空——大——小

用法:

SELECT a.name,a.age_ID FROM A a ORDER BY a.ageDESC

SELECT a.name,a.age as aa_ID FROM A a ORDER BY aaDESC

SELECT a.name,a.age_ID FROM A a ORDER BY 2 DESC

 

可以使用列名进行排序,也可以用列名所在的位置进行排序

二、多个字段排序(number)

说明:当两个字段同时进行排序的时候,当第一个字段相同时,才根据第二个字段进行排序。

用法:SELECT ju.NAME,ju.ROLE_ID,ju.EXPERIENCE FROM jspt_user ju ORDER BYju.ROLE_ID ASC, ju.EXPERIENCE ASC

三、字符串排序(varchar)

Mysql:

ASC 升序空——数字(1-9)——字母(a-z不区分大小写)

Desc 降序 字母(z-a不区分大小写)——数字(9-1)——空

Oracle:

ASC 升序 数字(1-9)——字母(大写)——字母(小写)——空

Desc 降序 空——字母(小写z-a)——字母(大写)——数字(9-1)

 

说明:aaa 和aaa123 在升序时,aaa在aaa123之前

 

四、子串排序

说明:按照身份证的后5位进行排序

例:SELECT ju.ACCOUNT,ju.ID_CARD_NUM,SUBSTR(ID_CARD_NUM,-5) AS num

FROM jspt_user ju ORDER BY num DESC

 

五、按照字符串和数字混合中的字符串进行排序(oracle)

说明:此时要把某一列的数字替换成空格,使用字符串函数translate(替换列,需替换的地方,替换成)

例:SELECT ju.ACCOUNT,ju.NAME,translate(ACCOUNT,'-0123456789','-')as acc FROM jspt_user ju ORDER BY acc DESC

 

六、空值在前(oracle)

说明:空值在前,其他升序排序,mysql 升序,空值本来就放在前面

例:SELECT ju.ACCOUNT FROM jspt_user ju ORDER BY ACCOUNT NULLSfirst

 

七、优先排序

说明:搭配case when 进行排序

例:SELECT * FROM jspt_user ju  ORDER BY CASE WHEN  ju.CREATE_SOURCE = '1' THEN 1 ELSE 0  end DESC

字段为create_source=1时,优先排序

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值