You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite与H2数据库ORDER BY排序:特殊字符与数字差异及示例排序问询

SQLite 与 H2 数据库 ORDER BY 子句的特殊字符/数字排序规则差异

核心排序规则差异

SQLite

  • 默认采用BINARY排序规则,完全基于字符的ASCII/UTF-8字节值进行比较。
  • 排序优先级只看字符编码值,不考虑字符类别或语言规则。数字字符('0'-'9',ASCII 48-57)的编码值低于多数常见特殊字符(比如@的ASCII为64)。

H2 数据库

  • 默认排序规则依赖于数据库的字符集和配置(通常为UNICODE或对应语言的排序规则,比如ENGLISH)。
  • 按照Unicode字符类别排序,多数标点符号(包括@)会被排在数字字符之前,而非单纯依赖编码值。

值 1、5、@ 的排序结果

SQLite(默认BINARY排序)

升序排列:1 → 5 → @

原因:ASCII值对比:'1'=49 < '5'=53 < '@'=64

H2(默认排序)

升序排列:@ → 1 → 5

原因:默认规则将标点类字符的排序优先级置于数字类字符之前

内容的提问来源于stack exchange,提问作者tietze111

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:32:53