博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL、Oracle、DB2等数据库常规排序、自定义排序和按中文拼音字母排序
阅读量:5338 次
发布时间:2019-06-15

本文共 1002 字,大约阅读时间需要 3 分钟。

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');

 

 

转载于:https://www.cnblogs.com/symbol8888/p/7195662.html

你可能感兴趣的文章
perl学习(6)控制语句
查看>>
170222
查看>>
centos 6.5下使用中文输入法
查看>>
MHA 代码解析(online swtich+master is alive 模式)
查看>>
UDF 编写自定函数
查看>>
Part4 类与对象 4.3构造函数
查看>>
文件的学习
查看>>
论文笔记【MDNet//CVPR2016】
查看>>
每日踩坑 2018-01-09 WebAPI会如何面对URL中的空串string参数?
查看>>
Qt之线程基础
查看>>
hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别
查看>>
Mysql常用DDL命令
查看>>
本地用plsql软件
查看>>
客户端连接linux虚拟机集群报错
查看>>
解决java.lang.NoClassDefFoundError错误
查看>>
linux系统下创建lvm挂载到指定目录
查看>>
python学习之while循环
查看>>
Repeater, DataList, 和GridView的区别
查看>>
【BZOJ1419】 Red is good [期望DP]
查看>>
python-异常处理-20
查看>>