SQL to" order by" 2个nvarchar列

时间:2018-05-14 02:17:27

标签: sql sql-order-by

我有2个nvarchar列,我需要按顺序排序(第1列示例:TW001_1,第2列示例:测试文档_2)

如何以与使用整数相同的方式订购2个NVARCHAR列(按column1,column2 asc排序)?

1 个答案:

答案 0 :(得分:0)

您可以将文本分成文本部分和数字部分,然后应用所需的排序。例如:

SELECT column1, LEFT(column1, 2) as textSort, CAST(SUBSTRING(column1, 3, 8) as int) as numberSort1, CAST(RIGHT(column1, 1) as int) as numberSort2
FROM table1 
ORDER BY textSort, numberSort1, numberSort2;

这是基于假设而且column1的格式如下AA99999999_9(即2个字母,后跟8位数字,然后是下划线和单个数字)。