SQL输出查询结果中的行号

SQL输出查询结果中的行号,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我想为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和SomeTab

我想为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首先创建了这样一个查询):


我认为它对SQLite不起作用(如果有人能在这里纠正我,我将不胜感激),我不确定还有什么替代方案。

您可以使用ROW\u NUMBER函数来实现这一点。检查这里的语法

关于你的问题

SELECT client_name, ROW_NUMBER() Over (Order By client_name) AS row_number 
FROM   (select distinct client_name from deliveries) SQ
将在Oracle中运行。

SQL> select row_number() over (order by deptno) as rn
  2         , deptno
  3  from
  4     ( select distinct deptno
  5            from emp
  6          )
  7  /

        RN     DEPTNO
---------- ----------
         1         10
         2         20
         3         30

SQL>
或者你也可以这样做

SELECT DISTINCT client_name, @num := @num + 1 AS lineNum(this is your new col)
FROM deliveries
JOIN (SELECT @num :=0) AS n ON 1=1;

希望这也有帮助:)

在SQL中,我们也在使用此查询:

select row_number() over (order by table_kid) as S_No ,table_columnname,table_columnname2 from tablename where table_fieldcondition='condtionnal falg or data ';

这里的table\u kid或其他table\u columnname

您使用的是什么SQL引擎?您使用的是什么数据库平台?MySQL?SQL Server?神谕您从哪种编程语言/环境运行查询?是否有一个特定的原因,你认为最好是通过查询而不是通过程序代码来实现?我使用微软RealthServices作为环境,并且我需要一个整数标识符,因为这个工具中有一个错误。这个行号有用吗?如果重新运行查询,则它可能会更改。在客户机上添加一个标识列不是更好吗?@Russ-Cam-因此,您的解决方案是任何人都不应该打印任何报告,永远不?对于sql server 2005,这将是首选option@Russ:你的意思是唯一理智的选择。@Eric:你是说理智总是首选吗?:)@Rax:仅在SQL中。除此之外,理智永远是次要的选择。
SELECT DISTINCT client_name, @num := @num + 1 AS lineNum(this is your new col)
FROM deliveries
JOIN (SELECT @num :=0) AS n ON 1=1;
select row_number() over (order by table_kid) as S_No ,table_columnname,table_columnname2 from tablename where table_fieldcondition='condtionnal falg or data ';