各位CSDN 的朋友,你们有没有写过关于 SQL 的行记录的相关语句 如:
表 A
名称 成绩
张三 15
李四 20
王五 9
赵六 11
孙气 18
我想直接一条SQL 语句 用 成绩 正序排序 返回 张三 位于第几行数据
和直接一条SQL 语句 用 成绩 正序排序 返回 第3行数据是谁
表 A
名称 成绩
张三 15
李四 20
王五 9
赵六 11
孙气 18
我想直接一条SQL 语句 用 成绩 正序排序 返回 张三 位于第几行数据
和直接一条SQL 语句 用 成绩 正序排序 返回 第3行数据是谁
INSERT @TB
SELECT N'张三', 15 UNION ALL
SELECT N'李四', 20 UNION ALL
SELECT N'王五', 9 UNION ALL
SELECT N'赵六', 11 UNION ALL
SELECT N'孙气', 18;WITH CET AS
(
SELECT *,PX=ROW_NUMBER() OVER (ORDER BY [成绩])
FROM @TB
)
SELECT PX FROM CET WHERE [名称]=N'张三'
--SELECT [名称] FROM CET WHERE PX=3
select
count(1)+1
from A
where 成绩>(select 成绩 from A where 名称='张三')
order by 成绩
1:
Select [student_name]
,[order] as'行数'
from(
SELECT [student_name]
,grade
,row_number()over(Order by[grade]) as [order]
FROM [grade]
) as T
where T.[student_name]='张三'
2:
Select [student_name]
,[order] as'行数'
from(
SELECT [student_name]
,grade
,row_number()over(Order by[grade]) as [order]
FROM [grade]
) as T
where T.[order]=3
最终采用了 jwdream2008 的回答,他的语句则可以直接一条SQL语句返回我需要的功能