select *
from
(select row number() over (order by UnitPrice) as PriceRank,* from books) as Rank
where PriceRank between 21 and 30
order by UnitPrice
各位,这和函数怎么理解啊?
这句话完全看不懂啊
解决方案 »
- 如何找到最后一次备份的记录....
- 请问在数据库的一张表中插入一行数据,但由于我第一列是自动增加的不能往里添数据,请问这sql语句怎么写法?
- 求救!动态数组统计
- 求一复杂查询语句~~~~~~~~急~~~~~~~~~~
- sql错误text、ntext 和 image 数据类型无效
- 日期时间问题
- 这样怎么算出加班时间
- 超级SUPER级别的SQL数据库查询命令!!!!打赌输了400元!!!!!!!!!可怜,有高手能赚钱的进!
- sqlserver的日期比较问题,非常简单
- SqlParameter与MySqlParameter不能通用
- 请教一下如何修改这个存储过程才能获取到列的数据类型?
- 如何把表A的属性x覆盖表B的属性x
insert into @t
select 1 union all
select 4select ROW_NUMBER() over(order by id desc) as rownum,id from @t
/*
rownum id
-------------------- -----------
1 4
2 1
*/
表示把某列排序后的行号。
over后面的括号里面表示排序的字段。例如我上面的例子
按id倒序,第一行应该是4,第二行应该是1。
前面的就是排序后出来的行号ROW_NUMBER() over(order by id desc)
(select row_number() over (order by UnitPrice) as PriceRank,* from books) as Rank
后面部分怎么理解啊?
我是新手,谢谢你
建议LZ看一下row_number()的帮助,把主要部分记住。