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

Откуда:
Сообщений: 274
Похожие вопросы пересмотрел, решения для MS SQL Server 2000 так и не встретил

селект из таблицы выводит всегда одну строку:

id name org status town
1 jeff bank 1 berlin

нужно отразить ее столбцом

id 1
name jeff
org bank
status 1
town berlin

Благодарю за помощь!
7 окт 13, 22:28    [14936518]     Ответить | Цитировать Сообщить модератору
 Re: строка в столбец  [new]
qwerty112
Guest
Евгенич
Похожие вопросы пересмотрел, решения для MS SQL Server 2000 так и не встретил

для >=2005 сервера, поинтересней можно было бы сделать,
а для 2000-го - "скинуть" результат во времянку и затем 5-ть UNION ALL для каждого поля из времянки

или так, если одним запросом
select	a.fld, 
	case 
		when a.fld='id' 	then cast(min(b.id) as varchar)
		when a.fld='name' 	then min(b.name) 
		when a.fld='org' 	then min(b.org) 
		when a.fld='status' 	then cast(min(b.status) as varchar) 
		when a.fld='town' 	then min(b.town) 
	end as val
from 
	(select 'id' as fld union all
	select 'name' union all
	select 'org' union all
	select 'status' union all
	select 'town') a
cross join (/* селект из таблицы выводит всегда одну строку */) b
group by a.fld
7 окт 13, 23:12    [14936755]     Ответить | Цитировать Сообщить модератору
 Re: строка в столбец  [new]
SERG1257
Member

Откуда:
Сообщений: 2880
В лоб
select * from
(
select id,
   'id' as fieldName,
   cast(id as varchar(100)) as val
from myTable
union all
select id,
   'name ' as fieldName,
   cast(name as varchar(100))
from myTable
union all
select id,
   'org' as fieldName,
   cast(org as varchar(100)) 
from myTable
union all
select id,
   'status' as fieldName,
   cast(status as varchar(100))
from myTable
union all
select id,
   'town' as fieldName,
   cast(town as varchar(100))
from myTable
) myQuery
order by id, fieldName

но запрос (select from myTable) будет выполнятся несколько раз (по числу столбцов)
возможно есть смысл скинуть результат во временную таблицу и запрашивать уже ее
7 окт 13, 23:13    [14936765]     Ответить | Цитировать Сообщить модератору
 Re: строка в столбец  [new]
prog882
Guest
Евгенич,

declare @t table
(id int,name varchar(max),org varchar(max),status int,town varchar(max))

insert into @t
select 1,'jeff','bank',1,'berlin';

select top 1 col1='id',col2=cast(id as varchar) from @t union all
select top 1 col1='name',col2=cast(name as varchar) from @t union all
select top 1 col1='org',col2=cast(org as varchar) from @t union all
select top 1 col1='status',col2=cast(status as varchar) from @t union all
select top 1 col1='town',col2=cast(town as varchar) from @t
8 окт 13, 08:49    [14937360]     Ответить | Цитировать Сообщить модератору
 Re: строка в столбец  [new]
Евгенич
Member

Откуда:
Сообщений: 274
Все огромное СПАСИБО!
9 окт 13, 14:09    [14944754]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить