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

Откуда:
Сообщений: 570
Есть табличка с такими полями (привожу сокращенный вариант):
name    al_min  al_max   cu_min   cu_max   - это поля
Никель  2       3         4        10.2     - это значения одной записи
Надо из этой одной записи попарно выдратьзначения и составить их в столбик.
т.е. результатом должна быть табличка:

min   max
2      3
4      10.2

???


http://revda.info
http://revda.biz
16 мар 06, 11:28    [2454740]     Ответить | Цитировать Сообщить модератору
 Re: Задачка (строчку в двойной столбик)  [new]
adv
Member

Откуда:
Сообщений: 3333
union поможет
16 мар 06, 11:29    [2454749]     Ответить | Цитировать Сообщить модератору
 Re: Задачка (строчку в двойной столбик)  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Массивы и Списки в SQL Server

Разделитель у вас - пробел. Дальше понятно.
16 мар 06, 11:30    [2454754]     Ответить | Цитировать Сообщить модератору
 Re: Задачка (строчку в двойной столбик)  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Не, пардон. Про списки - не в тему. Мне приглючилось, что у вас это все в одной строке.
16 мар 06, 11:31    [2454761]     Ответить | Цитировать Сообщить модератору
 Re: Задачка (строчку в двойной столбик)  [new]
revda.info
Member

Откуда:
Сообщений: 570
А пример можно ? Спасибо.

http://revda.info
http://revda.biz
16 мар 06, 11:35    [2454787]     Ответить | Цитировать Сообщить модератору
 пример  [new]
adv
Member

Откуда:
Сообщений: 3333
select 2 поля
union
select другие 2 поля
16 мар 06, 11:40    [2454814]     Ответить | Цитировать Сообщить модератору
 Re: Задачка (строчку в двойной столбик)  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34236
Блог
select al_min as [min], al_max as [max]
  from t
  where name = 'никель' union all
select cu_min, cu_max   
  from t
  where name = 'никель'
В принципе можно через самосвязывание еще сделать, на это несколько сложнее будет
16 мар 06, 11:42    [2454837]     Ответить | Цитировать Сообщить модератору
 Re: Задачка (строчку в двойной столбик)  [new]
[mart]
Guest
declare @table table (
	name varchar(10)
	,al_min numeric(7,2)
	,al_max numeric(7,2)
	,cu_min numeric(7,2)
	,cu_max numeric(7,2)
)
set nocount on
insert into @table (name, al_min, al_max, cu_min, cu_max)
	select 'Никель', 2, 3, 4, 10.2 union all
	select 'Люминий', 20, 30, 40, 100.2 union all
	select 'Чугуний', 200, 300, 400, 1000.2

select
	b.Name
	,a.val
	,case when a.val = 'AL' then b.al_min else b.cu_min end [min]
	,case when a.val = 'AL' then b.al_max else b.cu_max end [max]
from
	(select 'AL' val union all select 'CU' val) a
	,@Table b
16 мар 06, 12:03    [2454989]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить