添加自动增量列以查询结果

时间:2013-05-15 04:59:20

标签: sql sqlite

如果不创建带有自动增量列的TEMP表,如何在查询结果中添加自动递增字段?例如,

SELECT ???, * FROM MyTable

应该导致:

1|*
2|*
3|*

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找行号。尝试这样的事情:

SELECT (SELECT COUNT(0) 
        FROM supportContacts t1 
        WHERE t1.id <= t2.id 
        ) AS 'Row Number', * FROM supportContacts t2 ORDER BY id; 

示例表:

╔════╦═════════╦═════════════════════╗
║ id ║  type   ║       details       ║
╠════╬═════════╬═════════════════════╣
║  1 ║ Email   ║ admin@sqlfiddle.com ║
║  2 ║ Twitter ║ @sqlfiddle          ║
╚════╩═════════╩═════════════════════╝

结果:

╔════════════╦════╦═════════╦═════════════════════╗
║ Row Number ║ id ║  type   ║       details       ║
╠════════════╬════╬═════════╬═════════════════════╣
║          1 ║  1 ║ Email   ║ admin@sqlfiddle.com ║
║          2 ║  2 ║ Twitter ║ @sqlfiddle          ║
╚════════════╩════╩═════════╩═════════════════════╝

See this SQLFiddle