database - 在数据库中存储为字符串的订购号

标签 database language-agnostic sql-order-by

我在一个数据库的几个表中有一堆记录,这些表有一个“进程号”字段,这基本上是一个数字,但我必须将它存储为一个字符串,因为一些遗留数据有像“89a”这样的东西"作为一个数字和一些编号系统,要求进程编号表示为数字/年份。

当我尝试按编号对流程进行排序时出现问题。我得到这样的东西:

  • 1
  • 10
  • 11
  • 12

另一个问题是当我需要添加一个新进程时。新进程的编号应该是现有的最大编号加一,为此我需要一种方法来按编号对现有记录进行排序。

有什么建议吗?

最佳答案

Maybe this will help.

本质上:

SELECT process_order FROM your_table ORDER BY process_order + 0 ASC

关于database - 在数据库中存储为字符串的订购号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/210509/

相关文章:

mysql - 更正此ERD这些部分的最有效方法是什么?

java - 在 spring jdbctemplate 中传递不带单引号的字符串

r - 将数据帧与 data.table 匹配

algorithm - 查找并连接子图

mysql - SQL在数据库结构中允许独立表吗?

language-agnostic - 在设计像 SO 这样的在线社区代表系统时要考虑什么?

java - 你能解释一下流的概念吗?

mysql - mysql 5.7 中奇怪的分组/排序行为

java - 依赖 order by 中空值的顺序是否安全?

mysql - 为什么 order by 在我的 Union 查询中不起作用?