【发布时间】:2014-10-14 17:00:15
【问题描述】:
我使用的是 MSSQL ADO.NET,我需要按雇主代码对订单进行数字排序,尽管每个订单代码前面都有 2X 个字母。
例如:
HP1234
HP1233
HP1236
本质上,我试图将数字与字母分开,并按 asc 或 desc 排序,只是用数字给出一些顺序。我想知道是否有人可以建议一个使用 orderby 子句的好方法。
【问题讨论】:
-
总是2个字符和4个数字吗?或者这4个数字的数量可能会有所不同?如果您知道前 2 个字符总是要被省略,只需将长度减 2 并转换为数字。
-
在使用子字符串删除前两个字符后对列使用 order by。
-
它总是两个字母,数字的长度不同。前两个总是字母,虽然不在输出中,但要按顺序省略。
-
如果你有标准化的数据,每个数据元素都是它自己的列,这根本不是问题。当您将 2 条数据合并到一个列中时,您违反了 1NF 并遇到了各种问题。
标签: sql-server vb.net ado.net