如果不创建带有自动增量列的TEMP表,如何在查询结果中添加自动递增字段?例如,
SELECT ???, * FROM MyTable
应该导致:
1|*
2|*
3|*
答案 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 ║
╚════════════╩════╩═════════╩═════════════════════╝