关于在sql中使用order by实现排序出错问题

 更新时间:2023年08月26日 11:20:13   作者:牧野风凉  
这篇文章主要介绍了关于在sql中使用order by实现排序出错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

在sql中使用order by实现排序出错

因为本人正在学习数据库阶段,所以我会把我遇到的问题和一些我已经解决了的例子放上来,仅供参考~

1.一般情况下

我们在命令行里使用order by来进行排序。

但存在一个问题,就算我们进行了排序,还是会出现错误,就拿下面这个例子来说,

按照alexa栏进行升序排列,但排序过后却变成了这个样子,

噔噔噔?这个3是怎么回事,怎么不听话,使用的语句没有错啊,实际上,此处的alexa是varchar类型的,在使用order by进行排序时,会自动按照字符串排序的方式,1开头的排在前面,然后再排2开头的,3,4,5······

2.要想按照数值排序

就得先将字符串类型改为数值类型,我百度过,都说的是将order by ASC改为order by convert(int ,alexa)或者order by cast(alexa as int),但实际上我试验了,还是报错,不知道为什么,

后来我考虑到数值类型除了int,还有其他的,我就试了一下decimal,decimal表示的是精度值,百度上说当用 int类型会有溢出时,可以用 decimal 类型进行处理,把结果可以用 convert 或是 cast 进行转换。

此时就可以了,结果如下图显示:

SQL ORDER BY自定义排序规则

默认SQL语句中的order by会根据指定字段的内容按照默认规则排序

比如说我现在有这样一个表:

idlevelname
2刘德华
3张惠妹
1陈冠希

可以使用下面的语句来自定义排序规则(按照高中低的顺序) 

SELECT
	*
FROM
	stars
ORDER BY
	(
		CASE level
		WHEN '高' THEN
			3
		WHEN '中' THEN
			2
		ELSE
			1
		END
	) ASC

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql 5.7以上版本下载及安装图文教程

    mysql 5.7以上版本下载及安装图文教程

    这篇文章主要介绍了mysql 5.7以上版本下载及安装图文教程,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • Mysql存储引擎详解

    Mysql存储引擎详解

    存储引擎其实就是如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。本文我们来详细探讨下MySQL中的几个存储引擎(MyISAM、InnoDB、archive、MERGE)的相关知识
    2016-12-12
  • 浅谈mysqldump使用方法(MySQL数据库的备份与恢复)

    浅谈mysqldump使用方法(MySQL数据库的备份与恢复)

    下面小编就为大家带来一篇浅谈mysqldump使用方法(MySQL数据库的备份与恢复)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • MySQL中主键与rowid的使用陷阱总结

    MySQL中主键与rowid的使用陷阱总结

    这篇文章主要给大家总结介绍了关于MySQL中主键与rowid的使用陷阱,文中通过示例代码介绍的非常详细,对大家的学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • Linux系统下mysqlcheck修复数据库命令(详解)

    Linux系统下mysqlcheck修复数据库命令(详解)

    下面小编就为大家带来一篇Linux系统下mysqlcheck修复数据库命令(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦
    2016-12-12
  • MySQL BinLog如何恢复误更新删除数据

    MySQL BinLog如何恢复误更新删除数据

    这篇文章主要介绍了MySQL BinLog如何恢复误更新删除数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • lnmp关闭mysql日志保护硬盘空间的方法

    lnmp关闭mysql日志保护硬盘空间的方法

    这篇文章主要介绍了lnmp关闭mysql日志保护硬盘空间的方法,需要的朋友可以参考下
    2014-02-02
  • mysql insert 存在即不插入语法说明

    mysql insert 存在即不插入语法说明

    这篇文章主要介绍了mysql insert 存在即不插入语法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • MySQL的语法及其使用指南

    MySQL的语法及其使用指南

    数据库的选取,创建,丢弃和变更 数据表和索引的创建,变更和丢弃从数据表检索信息
    2008-04-04
  • MySQL与Mongo简单的查询实例代码

    MySQL与Mongo简单的查询实例代码

    本文通过一个实例给大家用MySQL和mongodb分别写一个查询,本文图片并茂给大家介绍的非常详细,感兴趣的朋友参考下吧
    2016-10-10

最新评论