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

Откуда:
Сообщений: 5924
Попробвала пример из BOL, попробовала вот этот пример из форума
create table #tbl1 (
	id int not null identity(1,1),
	p1 numeric(9,2) null,
	p2 numeric(9,2) null,
	p3 numeric(9,2) null,
	p4 numeric(9,2) null,
	p5 numeric(9,2) null)

insert into #tbl1(p1, p2, p3, p4, p5) 
		values (1.1, 1.2, 1.3, 1.4, 1.5)
insert into #tbl1(p1, p2, p3, p4, p5) 
		values (1.1, 1.2, 1.3, 1.4, 1.5)		

select id, Buf, xx
	from 
	(select id, p1, p2, p3, p4, p5 from #tbl1) srct
	unpivot
	(xx for Buf in (p1, p2, p3, p4, p5)) unpvt	


упорно выдаёт ошибку:
Msg 170, Level 15, State 1, Line 4
Line 4: Incorrect syntax near 'unpivot'.

Куда копать?
29 фев 12, 19:53    [12173060]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
2000-я версия сиквела?
База в режиме совместимости с 2000-й версией?
29 фев 12, 19:54    [12173062]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Ай
Member

Откуда:
Сообщений: 5924
SQL 2008 R2
29 фев 12, 19:58    [12173073]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Ай
SQL 2008 R2


чудеса...и все-таки:

select @@version

?
29 фев 12, 20:00    [12173077]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Ай
Member

Откуда:
Сообщений: 5924
Microsoft SQL Server 2000 - 8.00.2055 (Intel X86) Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
29 фев 12, 20:02    [12173078]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Да блин:
select name, compatibility_level
from sys.databases
where Name = 'имя вашей базы';
- что вернет?
29 фев 12, 20:02    [12173079]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
А, ну дык вариант 1.
Второй, впрочем, ведет себя так же.
29 фев 12, 20:02    [12173083]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Ай
Microsoft SQL Server 2000 - 8.00.2055 (Intel X86) Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)


Microsoft SQL Server 2000
29 фев 12, 20:02    [12173084]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Ай
Member

Откуда:
Сообщений: 5924
Ennor Tiegael
Да блин:
select name, compatibility_level
from sys.databases
where Name = 'имя вашей базы';
- что вернет?

ошибку
Msg 208, Level 16, State 1, Line 1
Invalid object name 'sys.databases'.
29 фев 12, 20:04    [12173088]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Ай
Ennor Tiegael
Да блин:
select name, compatibility_level
from sys.databases
where Name = 'имя вашей базы';
- что вернет?

ошибку
Msg 208, Level 16, State 1, Line 1
Invalid object name 'sys.databases'.


да все уже...2000ый у вас...нет там ни Пивота, ни 'sys.databases'
29 фев 12, 20:05    [12173092]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Ай
Member

Откуда:
Сообщений: 5924
Хорошо. Что делать если надо развернуть строку в колонку без UNION?
29 фев 12, 20:06    [12173095]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
qwerty112
Guest
Ай
Хорошо. Что делать если надо развернуть строку в колонку без UNION?

покупать 2008-ой, шож не ясно ?
29 фев 12, 20:08    [12173099]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Ай
Хорошо. Что делать если надо развернуть строку в колонку без UNION?

без юнион никак...либо на 2005 и выше, либо:

select id, 'p1' Buff, p1 as xxx from #tbl1
union all
select id, 'p2' Buff, p2 as xxx from #tbl1
union all
select id, 'p3' Buff, p3 as xxx from #tbl1
union all
select id, 'p4' Buff, p4 as xxx from #tbl1
union all
select id, 'p5' Buff, p5 as xxx from #tbl1
order by id, Buff
29 фев 12, 20:08    [12173100]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Ай
Member

Откуда:
Сообщений: 5924
qwerty112
Ай
Хорошо. Что делать если надо развернуть строку в колонку без UNION?

покупать 2008-ой, шож не ясно ?

Это, конечно, тоже решение.
Ещё какие-нибудь варианты есть?
29 фев 12, 20:10    [12173106]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
Ай
Member

Откуда:
Сообщений: 5924
Knyazev Alexey
Ай
Хорошо. Что делать если надо развернуть строку в колонку без UNION?

без юнион никак...либо на 2005 и выше, либо:

select id, 'p1' Buff, p1 as xxx from #tbl1
union all
select id, 'p2' Buff, p2 as xxx from #tbl1
union all
select id, 'p3' Buff, p3 as xxx from #tbl1
union all
select id, 'p4' Buff, p4 as xxx from #tbl1
union all
select id, 'p5' Buff, p5 as xxx from #tbl1
order by id, Buff


Спасибо.
А как хотелось... Эх-х-х
29 фев 12, 20:11    [12173110]     Ответить | Цитировать Сообщить модератору
 Re: UNPIVOT выдаёт ошибку.  [new]
iljy
Member

Откуда:
Сообщений: 8711
Ай,

ну почему, можно и на 2000 почти без UNION

select id, case x when 1 then 'p1' when 2 then 'p2' when 3 then 'p3' when 4 then 'p4'when 5 then 'p5' end Buf,
	case x when 1 then p1 when 2 then p2 when 3 then p3 when 4 then p4 when 5 then p5 end xx
from 
	(select id, p1, p2, p3, p4, p5 from #tbl1) srct
	cross join
	(select 1 union all select 2 union all select 3 union all select 4 union all select 5)tt(x)
29 фев 12, 20:24    [12173138]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить