首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以使用多个"with“吗?

我可以使用多个"with“吗?
EN

Stack Overflow用户
提问于 2011-03-21 17:13:23
回答 2查看 253.2K关注 0票数 258

举个例子:

With DependencedIncidents AS
(
    SELECT INC.[RecTime],INC.[SQL] AS [str] FROM
    (
        SELECT A.[RecTime] As [RecTime],X.[SQL] As [SQL] FROM [EventView] AS A 
        CROSS JOIN [Incident] AS X
            WHERE
                patindex('%' + A.[Col] + '%', X.[SQL]) > 0
    ) AS INC
)

With lalala AS
(
    SELECT INC.[RecTime],INC.[SQL] AS [str] FROM
    (
        SELECT A.[RecTime] As [RecTime],X.[SQL] As [SQL] FROM [EventView] AS A 
        CROSS JOIN [Incident] AS X
            WHERE
                patindex('%' + A.[Col] + '%', X.[SQL]) > 0
    ) AS INC
)

...不起作用."Error near With“。

另外,我想使用first with inside second with。它是真实的还是我需要使用临时表?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-21 17:21:04

尝试:

With DependencedIncidents AS
(
    SELECT INC.[RecTime],INC.[SQL] AS [str] FROM
    (
        SELECT A.[RecTime] As [RecTime],X.[SQL] As [SQL] FROM [EventView] AS A 
        CROSS JOIN [Incident] AS X
            WHERE
                patindex('%' + A.[Col] + '%', X.[SQL]) > 0
    ) AS INC
),
lalala AS
(
    SELECT INC.[RecTime],INC.[SQL] AS [str] FROM
    (
        SELECT A.[RecTime] As [RecTime],X.[SQL] As [SQL] FROM [EventView] AS A 
        CROSS JOIN [Incident] AS X
            WHERE
                patindex('%' + A.[Col] + '%', X.[SQL]) > 0
    ) AS INC
)

是的,您可以在公用表表达式定义中引用公用表表达式。即使是递归的。这导致了一些非常neat tricks的问题。

票数 454
EN

Stack Overflow用户

发布于 2011-03-21 17:19:32

是的,这样做就行了:

WITH DependencedIncidents AS
(
  ....
),  
lalala AS
(
  ....
)

您不需要重复WITH关键字

票数 142
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5375634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档