下面 2 个语句给出 2 个不同的结果
SELECT t.EID,t.name, ROW_NUMBER() OVER(ORDER BY 1) AS ROW_NUM
FROM ESWAR t
;
Run Code Online (Sandbox Code Playgroud)
SELECT t.EID,t.name, ROW_NUMBER() OVER(ORDER BY 1) AS ROW_NUM
FROM ESWAR t
;
Run Code Online (Sandbox Code Playgroud)
EID NAME ROW_NUM
2 Ram 1
1 Siva 2
3 Deva 3
Run Code Online (Sandbox Code Playgroud)
SELECT t.EID, t.name,ROW_NUMBER() OVER(ORDER BY t.EID) AS ROW_NUM
FROM ESWAR t
;
Run Code Online (Sandbox Code Playgroud) select tmp.id, tmp.portfolio,
ROW_NUMBER() OVER(order by tmp.id DESC) AS RowNum
from
(select r.portfolio, r.id
from research r
where r.created_by = 'Adam Cohen'
) as tmp
WHERE RowNum BETWEEN 5 AND 10;
Run Code Online (Sandbox Code Playgroud)
我无法在 where 条件中引用 RowNum,因为它显示无效的列名“RowNum”。请帮助我使用正确的语法来获得结果。
编辑 - 更改要求
SELECT * FROM
(
select id, portfolio,
CASE WHEN l.posted_on IS NULL
THEN CONVERT(VARCHAR(40),l.created_on,120)
ELSE CONVERT(VARCHAR(40),l.posted_on,120)
END AS sort_by,
ROW_NUMBER() OVER(order by sort_by DESC) AS RowNum
from research
where created_by = 'Adam Cohen'
) x
WHERE x.RowNum BETWEEN 5 AND 10
Run Code Online (Sandbox Code Playgroud)
我试图包含 …
我有下表
ID
12
12
25
25
78
78
78
Run Code Online (Sandbox Code Playgroud)
并且我需要能够在ID更改时递增计数器值.
ID **COUNTER**
12 1
12 1
25 2
25 2
78 3
78 3
78 3
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点?它甚至可能吗?
我的查询:
select
row_number() over(partition by line_no order by line_NO) as orce
from tx_hsa_summ
Run Code Online (Sandbox Code Playgroud)
这是我的查询,当我使用 over 函数时,我不断收到此错误
消息 195,级别 15,状态 10,第 1 行
“row_number”不是可识别的函数名称。
这是我的数据库版本
Microsoft SQL Server 2000 - 8.00.2305 (Intel X86) May 14 2012 16:24:50
Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition
on Windows NT 5.2 (Build 3790: Service Pack 2)
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题。提前致谢