1

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

SELECT ???, * FROM MyTable

应该导致:

1|*
2|*
3|*
4

1 回答 1

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          ║
╚════════════╩════╩═════════╩═════════════════════╝

看到这个 SQLFiddle

于 2013-05-15T05:05:27.203 回答