SQL输出查询结果中的行号
我想为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
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 ';