2011-03-21 2 views
104

только для примераМогу ли я использовать несколько «с»?

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 
) 

не работает. Msgstr "Ошибка рядом с".

Также я хочу использовать сначала с внутренней секундой. Это реально или мне нужно использовать временные таблицы?

+1

BOL также имеет точный синтаксис. http://msdn.microsoft.com/en-us/library/ms175972%28v=SQL.100%29.aspx Уведомление '[, ... n]'. –

ответ

180

Try:

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.

+3

Для тех, кто не сразу заметил это как я, уловка здесь добавляет запятую после оригинала с заявлением .. lol – CRSouser

67

Да - просто сделать это таким образом:

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

Вам не нужно повторять WITH ключевое слово

+7

простой и прямой – MDMalik

+3

Может ли lalala использовать DependencedIncidents? – Bren

+2

@Bren: да, конечно –

Смежные вопросы