我想为sql查询的结果中的每一行生成一个行号。如何做到这一点?
例如:在请求
select distinct client_name from deliveries
我想添加一列以显示行号
我正在使用sql server 2005。
这取决于您使用的数据库。一种适用于SQL Server,Oracle和MySQL的选项:
SELECT ROW_NUMBER() OVER (ORDER BY SomeField) AS Row, * FROM SomeTable
更改SomeField和SomeTable是根据您的特定表和相关字段进行排序的。自然,优选SomeField在查询上下文中是唯一的。
在您的情况下,查询将如下所示(Faiz首先制作了这样的查询):
SELECT ROW_NUMBER() OVER (ORDER BY client_name) AS row_number, client_name FROM (SELECT DISTINCT client_name FROM deliveries) TempTable
我认为它不会对SQLite的工作(如果有人能在这里纠正我,我将不胜感激),我不知道有什么替代那里。