关于在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中几种数据统计查询的基本使用教程

    MySQL中几种数据统计查询的基本使用教程

    这篇文章主要介绍了几种MySQL中数据统计查询的基本使用教程,包括平均数和最大最小值等的统计结果查询方法,是需要的朋友可以参考下
    2015-12-12
  • MySQL性能监控软件Nagios的安装及配置教程

    MySQL性能监控软件Nagios的安装及配置教程

    这篇文章主要介绍了MySQL性能监控软件Nagios的安装及配置教程,这里以CentOS操作系统为环境进行演示,需要的朋友可以参考下
    2015-12-12
  • MySQL主从同步原理及应用

    MySQL主从同步原理及应用

    日常工作中,MySQL数据库是必不可少的存储,其中读写分离基本是标配,而这背后需要MySQL开启主从同步,形成一主一从、或一主多从的架构。本篇文章我们就来解绍MySQL主从同步原理及应用,需要的朋友可以参考一下
    2021-10-10
  • MySQL用正则表达式进行搜索功能实例

    MySQL用正则表达式进行搜索功能实例

    MySQL中的正则表达式是一种强大的文本匹配工具,它允许你使用特定的模式来搜索、替换或检查字符串中的数据,这篇文章主要介绍了MySQL用正则表达式进行搜索功能的相关资料,需要的朋友可以参考下
    2025-08-08
  • MySQL CTE 通用表达式详解

    MySQL CTE 通用表达式详解

    在MySQL中,CTE是一种简洁而强大的语法,用于构建临时的结果集,通常用于简化复杂查询,下面通过本文给大家介绍MySQL CTE 通用表达式,感兴趣的朋友一起看看吧
    2025-06-06
  • Trae MySQL MCP 连接失败(Fail to start)的问题解决

    Trae MySQL MCP 连接失败(Fail to start)的

    本文详细介绍了使用Trae工具远程访问内网MySQL数据库时遇到的启动和认证兼容问题,并通过本地命令映射和环境变量注入的方式成功解决,具有一定的参考价值,感兴趣的可以了解一下
    2026-01-01
  • MySQL Hash索引和B-Tree索引的区别

    MySQL Hash索引和B-Tree索引的区别

    MySQL Hash索引和B-Tree索引的区别究竟在哪里呢?相信很多人都有这样的疑问,下文对两者的区别进行了详细的分析,需要的朋友可以参考下
    2014-03-03
  • MySQL触发器概念、原理与用法详解

    MySQL触发器概念、原理与用法详解

    这篇文章主要介绍了MySQL触发器概念、原理与用法,结合实例形势详细分析了mysql触发器相关概念、原理、创建、用法及操作注意事项,需要的朋友可以参考下
    2019-07-07
  • MySQ实现XA事务的具体使用

    MySQ实现XA事务的具体使用

    XA事务是一种分布式事务处理协议,本文主要介绍了MySQ实现XA事务的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • MySQL生成连续的数字/字符/时间序列的方法

    MySQL生成连续的数字/字符/时间序列的方法

    有时候为了生成测试数据,或者填充查询结果中的数据间隔,需要使用到一个连续的数据序列值,所以,今天我们就来介绍一下如何在 MySQL 中生成连续的数字、字符以及时间序列值,需要的朋友可以参考下
    2024-04-04

最新评论