【发布时间】:2012-06-17 15:44:42
【问题描述】:
如果我有这个fiddle
CREATE TABLE temp
(
y char(9),
x char(9)
);
insert into temp (x, y) values ('j', 'hello');
insert into temp (x, y) values ('j', 'world');
insert into temp (x, y) values ('q', 'foo');
insert into temp (x, y) values ('q', 'bar');
select
x
,y
from temp
我想在 SELECT 子句中包含一个行号。所以结果应该是这样的:
x y r
j hello 1
j world 2
q foo 3
q bar 4
我不相信 Row_number() over 会起作用,因为这需要一个订单,我不想从SELECT * FROM 更改订单。也不想在客户端数据库表中添加一个标识列
这在 SQL-Server 中可行吗?
【问题讨论】:
-
每次运行查询时
r值不一定匹配到同一行,您是否同意?为什么不关心订单?这些结果以什么顺序返回给客户端真的无关紧要吗?为什么不让客户端应用一个行号,因为无论如何它都必须循环显示它们,而且大多数客户端语言都非常有能力维护一个计数器。
标签: sql sql-server tsql