row_number() 的使用
WITH OrdersByOrderIDASC AS
(
SELECT
top 10 id,orderno, row_number() over(order by orderdate desc) as rowid
FROM bdorder
)
select * from OrdersByOrderIDASC
where rowid >=3 and rowid <=10
with as 用法:把重复用到的SQL语句放在with as 里面,取一个别名,后面的查询就可以用它 这样对于大批量的SQL语句起到一个优化的作用,而且清楚明了
上面等同于:
select * from ( SELECT top 10 id,orderno, row_number() over(order by orderdate desc) as rowid FROM bdorder )a
where rowid >=3 and rowid <=10
注:(1) with 必须直接跟使用CTE的SQL语句(如select、insert、update等),否则,CTE将失效。
(2) 可以引用自身(递归),也可以引用在同一 WITH 子句中预先定义的 CTE。不允许前向引用。
(3) . 不能在 CTE_query_definition 中使用以下子句: COMPUTE 或 COMPUTE BY ORDER BY(除非指定了 TOP 子句) INTO 带有查询提示的 OPTION 子句 FOR XML FOR BROWSE
【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
上一篇: varchar与nvarchar
下一篇: 数据库远程备份