按年份排序为 nvarchar,然后按数字排序

Sort by year as nvarchar and then numerically

我有一个 nvarchar 列,本质上存储以下数据:

20-198
99-135
19-135
20-197
20-195
99-435

前两个数字代表创建年份,最后一个数字代表当年制造的单元ID。每当我排序时,我首先得到 99,最后得到 19。我想先按最近年份排序,然后再按数字排序。

我已经尝试转换为 datetime 并使用子字符串,但我无法创建有效的查询,而且我不确定从这里到哪里去。

如有任何帮助,我们将不胜感激!

您可以在 order by:

中使用条件逻辑
order by (case when col <= '21' then 1 else 2 end),
         col desc