Sql按值排序

时间:2014-09-07 18:36:59

标签: sql sqlite select sql-order-by

如何按顺序选择订购?

我的意思是,我有这些数据:

column_1   |   column_2
    1      |      a    
    2      |      b    
    3      |      c    
    4      |      d
    4      |      e    
    3      |      f    
    1      |      g    
    2      |      h    

我想按1-4组订购,我的意思是:

column_1   |   column_2
    1      |      a    
    2      |      b    
    3      |      c    
    4      |      d
    1      |      g    
    2      |      h 
    3      |      f    
    4      |      e    

我希望column_1按 1,2,3,4 序列排序,然后再次 1,2,3,4 。 我的意思是,我不希望以这种方式订购:1,1,2,2,3,3,4,4 ...

[[编辑]]
column_2应该是Asc,我的意思是:按列排序_2

[[EDIT 2]]
我将在SQLite上使用此选择。我正在尝试使用SQL commons命令找到一种方法。

Sql Fiddle

有谁知道怎么可能?

1 个答案:

答案 0 :(得分:1)

如果您想按顺序排序,您真的希望枚举第1列中的每个值,对每个值都是独立的。例如:

1     1
2     1
3     1
4     1
4     2
3     2
2     2
1     2
5     1
5     2
5     3

我不确定在SQLite中是否有一种简单的方法可以做到这一点。在MySQL中,您将使用变量。在其他数据库中,窗口函数。您可以完成此相关子查询:

select column_1, column_2
from (select t.*,
             (select count(*) from table t2 where t2.column_1 = t.column_1 and t2.rowid <= t.rowid
             ) as seqnum
      from table t
     ) t
order by seqnum, column_1;