我有一个表,其列名称为“BatchNo”,并且它同时包含字符串和数值。当我输入选择查询时,我得到以下结果。
我想按以下格式对“BatchNo”列进行排序
在我的问题中, future 的批处理可能有 a、b、c .... 带有数字值或仅数字值的字母。我如何对该列进行排序?希望你们能帮我找到解决方案。
最佳答案
为什么不将表的架构更改为?
CREATE TABLE tableName
(
ShipmentNo INT,
ProjectCode VARCHAR(50),
BatchNo INT,
SubBatch INT,
.....
)
这样,就是按照你想要的方式对valkues进行排序。
后续问题是BatchNo
只有A-Z
中的单个字符值,例如
11a
11b
而不是
11aa
更新1
SELECT *
FROM tableName
ORDER BY CASE ISNUMERIC(batchNo)
WHEN 1 THEN batchNo
ELSE CAST(LEFT(batchNo, LEN(batchNo) - 1) AS INT)
END
SQLFiddle Demo
关于c# - 如何对同时包含字符串和数值的 varchar 类型列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13043002/