Sql 向查询结果添加自动增量列
如果不创建带有自动递增列的临时表,如何向查询结果添加自动递增字段?比如说,Sql 向查询结果添加自动增量列,sql,sqlite,Sql,Sqlite,如果不创建带有自动递增列的临时表,如何向查询结果添加自动递增字段?比如说, SELECT ???, * FROM MyTable 应导致: 1|* 2|* 3|* 我想你是在找行号。试着这样做: SELECT (SELECT COUNT(0) FROM supportContacts t1 WHERE t1.id <= t2.id ) AS 'Row Number', * FROM supportContacts t2 ORDER
SELECT ???, * FROM MyTable
应导致:
1|*
2|*
3|*
我想你是在找行号。试着这样做:
SELECT (SELECT COUNT(0)
FROM supportContacts t1
WHERE t1.id <= t2.id
) AS 'Row Number', * FROM supportContacts t2 ORDER BY id;
结果:
╔════════════╦════╦═════════╦═════════════════════╗
║ Row Number ║ id ║ type ║ details ║
╠════════════╬════╬═════════╬═════════════════════╣
║ 1 ║ 1 ║ Email ║ admin@sqlfiddle.com ║
║ 2 ║ 2 ║ Twitter ║ @sqlfiddle ║
╚════════════╩════╩═════════╩═════════════════════╝
如果查询结果不按
id
列排序(通常没有这样的列),或者某些记录被过滤掉,或者如果查询结果中重复了具有id
列的表的某些记录,则这不起作用。()@CL.-实际上,您还必须在子查询中给出条件(例如,where类型,如“%t%”
)。(请参阅)您需要autoincrement列做什么?作为进入网格的索引,该网格使用索引键获取查询结果的子集。目前,我最终得到了一个带有自动递增值的临时表——但它感觉很粗糙。从哪里获取?从数据库,还是从存储在网格中的数据?
╔════════════╦════╦═════════╦═════════════════════╗
║ Row Number ║ id ║ type ║ details ║
╠════════════╬════╬═════════╬═════════════════════╣
║ 1 ║ 1 ║ Email ║ admin@sqlfiddle.com ║
║ 2 ║ 2 ║ Twitter ║ @sqlfiddle ║
╚════════════╩════╩═════════╩═════════════════════╝