【问题标题】:sqlite howto sort columns?sqlite如何对列进行排序?
【发布时间】:2016-02-03 22:46:58
【问题描述】:

当我使用 Firefox 插件 SQLite ManagerSQLite Browser 等 sqlite 浏览器查看 sqlite 文件中的大表时,我看到这些列是根据它们添加到表中的顺序显示的(我一直在循环添加新列)。

A   J   D   B
--- --- --- ---
..  ..  ..  ..

这是一个视觉上的烦恼,因为表很大,有很多列,为了调试,我需要直观地检查相邻的列。如何对表格进行排序以便对列进行排序,例如:

A   B   J   D
--- --- --- ---
..  ..  ..  ..

谢谢。

【问题讨论】:

    标签: sqlite sorting


    【解决方案1】:

    SQLite 没有内置机制来重新排序表的列。

    您必须重新创建表:

    CREATE TABLE new_MyTable(A, B, J, D [...]);
    INSERT INTO new_MyTable SELECT A, B, J, D FROM MyTable;
    DROP TABLE MyTable;
    ALTER TABLE new_MyTable RENAME TO MyTable;
    

    【讨论】:

    • 两个答案都很棒!但我终于用了这个。我需要做很多字符串操作(使用python),以便能够首先自动检索一长串名称,然后对它们进行排序。使用来自this postthis post 的宝贵提示。
    【解决方案2】:

    您可以创建一个 DebugView,并根据需要对列重新排序...

    CREATE TABLE ChorleyHandford (IMAGE_REF, DATE, LOCATION, NUMBER);
    INSERT INTO "ChorleyHandford" VALUES('A10006','16/10/1990','RATCLIFFE POWER STATION CASTLE DONNINGTON POWER STATION','27');
    INSERT INTO "ChorleyHandford" VALUES('A10017','25/10/1990','BROMLEY PARKS','17');
    INSERT INTO "ChorleyHandford" VALUES('A10018','25/10/1990','CROSSWAYS BUSINESS PARK DARTFORD CROSSING BRIDGE CONSTRUCTION','20');
    INSERT INTO "ChorleyHandford" VALUES('A10022','25/10/1990','THURROCK LAKESIDE','11');
    INSERT INTO "ChorleyHandford" VALUES('A10057','01/11/1990','CLANDON REGIS SITE','6');
    

    看看你有什么:

    select * from CHORLEYHANDFORD;
    
    A10006|16/10/1990|RATCLIFFE POWER STATION CASTLE DONNINGTON POWER STATION|27
    A10017|25/10/1990|BROMLEY PARKS|17
    A10018|25/10/1990|CROSSWAYS BUSINESS PARK DARTFORD CROSSING BRIDGE CONSTRUCTION|20
    A10022|25/10/1990|THURROCK LAKESIDE|11
    A10057|01/11/1990|CLANDON REGIS SITE|6
    

    创建一个重新排序的视图,看看它现在的样子:

    create view dbgview as select NUMBER, LOCATION, DATE, IMAGE_REF FROM CHORLEYHANDFORD;
    select * from dbgview;
    
    27|RATCLIFFE POWER STATION CASTLE DONNINGTON POWER STATION|16/10/1990|A10006
    17|BROMLEY PARKS|25/10/1990|A10017
    20|CROSSWAYS BUSINESS PARK DARTFORD CROSSING BRIDGE CONSTRUCTION|25/10/1990|A10018
    11|THURROCK LAKESIDE|25/10/1990|A10022
    6|CLANDON REGIS SITE|01/11/1990|A10057
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-22
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 2021-06-20
      • 2012-12-16
      相关资源
      最近更新 更多