我想对这个列表进行排序

时间:2019-09-28 15:08:21

标签: sql sql-server sql-server-2008

我要在列表下面排序

当前输出:

+ Q1-2015
+ Q1-2016
+ Q1-2017
+ Q1-2018
+ Q1-2019
+ Q2-2015
+ Q2-2016
+ Q2-2017
+ Q2-2018
+ Q2-2019

预期输出:

+ Q1-2015
+ Q2-2015
+ Q3-2015
+ Q4-2015
+ Q1-2016
+ Q2-2016
+ Q3-2016
+ Q4-2016

我如何达到我想要的结果?

2 个答案:

答案 0 :(得分:4)

您可以按季度和年份部分在两个单独的级别中进行排序:

SELECT *
FROM yourTable
ORDER BY
    RIGHT(col, 4),  -- sort first by year component
    LEFT(col, 2);   -- then sort by quarter within a given year

Demo

答案 1 :(得分:0)

您可以使用$(document).ready( function() { $('#example').dataTable( { "oLanguage": { "sSearch": "Filter records:" } } ); } ); substringcharindex函数,以及将逻辑拆分为连字符和连字符后的逻辑,并更好地将其转换为int以便在其他情况下正确排序(即使在这种情况下即使只需要四个季度也是如此):

len

Demo