所以我在工作中遇到了以下内容,我可以马上说出它的用途,但我想找到它的任何文档,但在网上找不到任何东西!
with details as
(
select *,
row_number() over (order by CREATED_DATE) as [Row]
from
(
select top 10 * from MyTable
) t
)
select *
from details
where [Row] > @lowLimit and [Row] < @highLimit
在我看来,这类似于分页功能。但是,我不知道我在 sql 语法中查看的确切结构。有谁认识这种语法,你能告诉我在哪里可以阅读更多相关信息吗?
谢谢!
最佳答案
那是一个 common table expression .这些用作单个查询的临时结果集。以下查询将它们视为一个 View 。你可以用它们做一些巧妙的事情,比如递归!
以下是链接中对其功能的简要说明:
- 创建 recursive查询。
- 在不需要一般使用 View 时替换 View ;也就是说,您不必将定义存储在元数据中。
- 启用按派生自标量子选择的列或不确定或具有外部访问权限的函数进行分组。
- 在同一语句中多次引用结果表。
关于分号,请查看this回答一个非常有用的提示 - 为什么你应该总是在 CTE 前加上分号。
关于sql - sql中的 "with [alias] as"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16155639/