oracle按汉字拼音排序,MySQL、Oracle、DB2等数据库常规排序、自定义排序和按中文拼音字母排序,oracledb2...

本文介绍了在MySQL、Oracle和DB2数据库中进行常规排序、自定义排序和按中文拼音字母排序的方法。常规排序使用ASC和DESC进行升序和降序排列;自定义排序利用MySQL的FIELD()函数和Oracle、DB2的DECODE()函数实现特定顺序的排序;对于中文拼音排序,MySQL可通过GBK编码直接排序,UTF-8编码则需转换后再排序。这些技巧在实际SQL编写中非常实用。
摘要由CSDN通过智能技术生成

MySQL、Oracle、DB2等数据库常规排序、自定义排序和按中文拼音字母排序,oracledb2

MySQL常规排序、自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序。

下面给出3中比较常用的排序方式,mark一下

1.常规排序ASC DESC

ASC 正序

DESC倒叙

-- 此处不用多讲

2.自定义排序

自定义排序是根据自己想要的特定字符串(数字)顺序进行排序。

主要是使用函数 FIELD(str,str1,str2,str3,...)

MySQL的自定义排序,str与str1、str2、str3...进行比较,并按照str1,str2,str3...的顺序输出,如果遇到str为null或者不存在str1,str2,str3...中的情况的则序列为0,

eg:

SELECT * FROM TEST ORDER BY FIELD(value,'test1','test2','test3','test4') ASC/DESC

eg2:

SELECT * FROM TEST WHERE VALUE IN('test1','test2','test3','test4') ORDER BY FIELD(value,'test1','test2','test3','test4') ASC/DESC -- 保证只满足条件的进行排序

3.按中文拼音字母排序

如果表字段使用的GBK编码的话,我们可以直接order by value ,因为GBK本身就是按照拼音字母排序ABCDEFGHIGK...,当第一位相同的时候会比较第二位,以此类推。 如果表字段使用的UTF-8编码的话,通常我们都会的编码,这样我们可以使用MySQL的convert方法开转换gbk进行排序。

eg:SELECT * FROM TEST ORDER BY CONVERT(value USING GBK) ASC/DESC

以上转自:http://www.2cto.com/database/201704/628360.html

ORACLE和DB2可以借助DECODE函数,自定义顺序排序:

order by decode(字段名, 'aaa', '1', 'bbb', '2', 'ccc', '3', 'ddd', '4', ......,'Total', '99');

http://www.dengb.com/oracle/1218919.htmlwww.dengb.comtruehttp://www.dengb.com/oracle/1218919.htmlTechArticleMySQL、Oracle、DB2等数据库常规排序、自定义排序和按中文拼音字母排序,oracledb2 MySQL常规排序、自定义排序和按中文拼音字母排序,在实际...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值