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

Откуда:
Сообщений: 14
Кто-нибудь может помочь понять, почему разный результат одинакового запроса
при выборе из таблицы и табличной переменной?
С SQL Server ранее не сталкивался, вот пришлось, въезжаю тяжело после Oracle.

Выбор из таблицы:

create table sprav (id int, parent_id int, title varchar(30))
INSERT INTO sprav VALUES 
('1', null, 'Goods Groups'),
('2', '1', 'CPU'),
('3', '1', 'Displays'),
('4', '2', 'AMD'),
('5', '2', 'Intel'),
('6', '4', 'Athlon'),
('7', '4', 'Phenom'),
('8', '5', 'Pentium'),
('9', '5', 'i3'),
('10', '5', 'i5'),
('11', '5', 'i7'),
('12', '3', 'CRT'),
('13', '3', 'TFT')

with tree(id, parent_id, title, level, sort) as
(
  select id, parent_id, title, 0 as level, convert(varchar(500), title) sort
    from sprav
   where parent_id is null 
union all
  select k.id, k.parent_id, k.title, s.level+1, convert(varchar(500), rtrim(sort) + k.title)
    from sprav k, tree s
   where k.parent_id = s.id
)
select id, parent_id, level, convert(varchar(500), replicate('   ', level) + title) title
  from tree
 order by sort 


10Goods Groups
211 CPU
422 AMD
643 Athlon
743 Phenom
522 Intel
953 i3
1053 i5
1153 i7
853 Pentium
311 Displays
1232 CRT
1332 TFT


Выбор из табличной переменной:

declare @sprav table(id int, parent_id int, title varchar(30))
INSERT INTO @sprav VALUES 
('1', null, 'Goods Groups'),
('2', '1', 'CPU'),
('3', '1', 'Displays'),
('4', '2', 'AMD'),
('5', '2', 'Intel'),
('6', '4', 'Athlon'),
('7', '4', 'Phenom'),
('8', '5', 'Pentium'),
('9', '5', 'i3'),
('10', '5', 'i5'),
('11', '5', 'i7'),
('12', '3', 'CRT'),
('13', '3', 'TFT')
select * from @sprav;

with tree(id, parent_id, title, level, sort) as
(
  select id, parent_id, title, 0 as level, convert(varchar(500), title) sort
    from @sprav
   where parent_id is null 
union all
  select k.id, k.parent_id, k.title, s.level+1, convert(varchar(500), rtrim(sort) + k.title)
    from @sprav k, tree s
   where k.parent_id = s.id
)
select id, parent_id, level, convert(varchar(500), replicate('   ', level) + title) title
  from tree
 order by sort 


1Goods Groups
21CPU
31Displays
42AMD
52Intel
64Athlon
74Phenom
85Pentium
95i3
105i5
115i7
123CRT
133TFT
6 сен 12, 13:42    [13123670]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный результат  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
У меня результаты одинаковые.
6 сен 12, 13:49    [13123718]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный результат  [new]
iiyama
Member

Откуда:
Сообщений: 642
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) Jun 17 2011 00:57:23 Copyright (c) Microsoft Corporation Express Edition with Advanced Services on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (WOW64) (Hypervisor)

Результат идентичен
6 сен 12, 13:54    [13123754]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный результат  [new]
ooooooooooora
Member

Откуда:
Сообщений: 14
Гавриленко Сергей Алексеевич
У меня результаты одинаковые.

И какой? Первый или второй?
6 сен 12, 13:55    [13123763]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный результат  [new]
iiyama
Member

Откуда:
Сообщений: 642
1-й
6 сен 12, 13:59    [13123798]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный результат  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
ooooooooooora
Гавриленко Сергей Алексеевич
У меня результаты одинаковые.

И какой? Первый или второй?
Первый.
6 сен 12, 14:00    [13123800]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный результат  [new]
iiyama
Member

Откуда:
Сообщений: 642
2TC
Вы бы хоть версию сервера озвучили?
6 сен 12, 14:04    [13123837]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный результат  [new]
ooooooooooora
Member

Откуда:
Сообщений: 14
Вопрос закрыт.
Особенности разных Гуевых тулзин.
6 сен 12, 14:10    [13123904]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить