Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Что-то опять с CTE не могу разобраться  [new]
Владимир СА
Member

Откуда:
Сообщений: 7825
CREATE TABLE #T1 (ID int, ID_PAR int)
INSERT INTO #T1 (ID,ID_PAR)
SELECT 1,0
UNION ALL
SELECT 2,0
UNION ALL
SELECT 3,1
UNION ALL
SELECT 4,1
UNION ALL
SELECT 5,0
UNION ALL
SELECT 6,4

SELECT * FROM #T1

WITH C(ID,ID_PAR)
AS
(SELECT b.ID, b.ID_PAR
FROM #T1 b
WHERE b.ID = 1
UNION ALL
SELECT d.ID, d.ID_PAR
FROM #T1 d
INNER JOIN C
ON C.ID = d.ID_PAR
)
SELECT ID,ID_PAR FROM C;

DROP TABLE #T1
11 дек 09, 14:54    [8053978]     Ответить | Цитировать Сообщить модератору
 Re: Что-то опять с CTE не могу разобраться  [new]
Владимир СА
Member

Откуда:
Сообщений: 7825
Выдает ошибку
Msg 336, Level 15, State 1, Line 17
Incorrect syntax near 'C'. If this is intended to be a common table expression, you need to explicitly terminate the previous statement with a semi-colon.

SELECT @@version
Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) Nov 24 2008 13:01:59 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
11 дек 09, 14:55    [8053994]     Ответить | Цитировать Сообщить модератору
 Re: Что-то опять с CTE не могу разобраться  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
you need to explicitly terminate the previous statement with a semi-colon
11 дек 09, 14:58    [8054035]     Ответить | Цитировать Сообщить модератору
 Re: Что-то опять с CTE не могу разобраться  [new]
Владимир СА
Member

Откуда:
Сообщений: 7825
Так вроде и поставил ";".
По моему там.
11 дек 09, 14:59    [8054055]     Ответить | Цитировать Сообщить модератору
 Re: Что-то опять с CTE не могу разобраться  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
Владимир СА
Так вроде и поставил ";".
По моему там.
Ну зарядите уже сообщение в переводчик, что бы было понятно, что написано.
11 дек 09, 15:01    [8054090]     Ответить | Цитировать Сообщить модератору
 Re: Что-то опять с CTE не могу разобраться  [new]
Владимир СА
Member

Откуда:
Сообщений: 7825
Понял. Спасибо.
11 дек 09, 15:02    [8054099]     Ответить | Цитировать Сообщить модератору
 Re: Что-то опять с CTE не могу разобраться  [new]
Ozzy-Osbourne
Member

Откуда: Balashikha
Сообщений: 139
Владимир СА
Так вроде и поставил ";".
По моему там.
надо перед with:
if object_id('tempdb..#t1')>0 drop table #t1
create table #t1 (id int, id_par int)
insert into #t1 (id,id_par)
select 1,0
union all
select 2,0
union all
select 3,1
union all
select 4,1
union all
select 5,0
union all
select 6,4
--select * from #t1

;with c(id,id_par)
as
(select b.id, b.id_par
from #t1 b
where b.id = 1
union all
select d.id, d.id_par
from #t1 d
inner join c
on c.id = d.id_par
)
select id,id_par from c
11 дек 09, 15:02    [8054105]     Ответить | Цитировать Сообщить модератору
 Re: Что-то опять с CTE не могу разобраться  [new]
Владимир СА
Member

Откуда:
Сообщений: 7825
Да уже разобрался.
Но спасибо за помощь.
11 дек 09, 15:04    [8054139]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить