sql获取数据库中记录的行号(sql server)
数据库示例sql获取数据库中记录的行号(sql server),sql,sql-server,Sql,Sql Server,数据库示例 Id Name ----------------- 0 name0 1 name1 2 name2 17 name17 24 name 24 我想要一个类似这样的SQL语句 SELECT waytoFindRowNumber FROM example WHERE Id = 17 所以我得到的结果是 3 ==> the row no. of the matching record 我怎样才能得到这个结果 谢谢 编辑 使用ROWNU
Id Name
-----------------
0 name0
1 name1
2 name2
17 name17
24 name 24
我想要一个类似这样的SQL语句
SELECT waytoFindRowNumber
FROM example
WHERE Id = 17
所以我得到的结果是
3 ==> the row no. of the matching record
我怎样才能得到这个结果
谢谢
编辑
使用ROWNUMBER内置功能如何
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY Id,
ORDER BY Id) rown
FROM example
WHERE Id=17) tmp
WHERE tmp.rown = 3
这个问题我不清楚(name0是第0行name1是第1行name17是第3行您希望它返回3行,所有行都是ID 17行吗?您希望返回从ID 17开始的3行吗?问题是不明确的,因为您声明name17是第3行,那么您发布的查询将返回该行。但我怀疑这不是您想要的。不,我希望它给出数字3,它不提供r。)ows back这有点不合适,您需要将
ID=17
移动到子查询之外。
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY Id,
ORDER BY Id) rown
FROM example
WHERE Id=17) tmp
WHERE tmp.rown = 3