1 sql sql-server-2005 common-table-expression
之前从未使用过MS SQL Server,CTE对我来说是新手.但这正是我刚刚开始的项目所需要的.
有一张看起来像的桌子
TABLE group (
'id' int,
'parentId' int,
'groupName' varchar(255)
)
Run Code Online (Sandbox Code Playgroud)
所以我有一个动态页面,根据get参数,"Group"我想要返回此组以下的所有内容.我很确定我可以设法为它编写CTE并使用它.
但是每次我想使用它时我都会创建它吗?(基本上连接到DB,运行CTE的设置,然后使用在此运行的查询).或者,一旦它们被创建并准备好随时使用,它们是否存储在数据库中?
如果存储它们,是否有类似sp_tables等的命令来显示它们/它们?因为如果它们被保存在那里可能已经存在执行此操作的查询.
CTE只是formin SQL表达式的一种不同方式.
如果一条评论声明它"不是视图",则它与内联视图非常相似.不同之处在于您可以在同一查询中多次引用它,或者具有递归声明...
WITH cte AS (...) SELECT * FROM cte
is similar to
SELECT * FROM (...)
Run Code Online (Sandbox Code Playgroud)
然而,他们并没有坚持下去.你甚至不能做以下事情......
WITH
cte AS
(
...
)
SELECT * INTO #temp FROM cte
SELECT * FROM cte
Run Code Online (Sandbox Code Playgroud)
SELECT INTO将起作用,但到第二次选择时,CTE超出范围......
| 归档时间: |
|
| 查看次数: |
2558 次 |
| 最近记录: |