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

Откуда: xrumer2017.ru
Сообщений: 325
Добрый день.

with t as
(select 'Иванов Иван Викторович' a, 'Иванов И.В.' b from dual union all
 select 'Петров Иван Апельсинович' a, 'Петров И.А.' b from dual union all
 select 'Жариков Аркадий Викторович' a, 'Жариков А.В.'b from dual union all
 select 'Зубров Юшкин Дудкович' a, 'Зубров Ю.Д.' b from dual
)
select t.a, t.b from t

А нужно получить следующее.
Сортировку не учитывал.
Столбец A            	Столбец B
Длинное имя	           Иванов Иван Викторович
Короткое имя         	Иванов И.В.
Длинное имя	           Петров Иван Апельсинович
Длинное имя	           Жариков Аркадий Викторович
Длинное имя	           Зубров Юшкин Дудкович
Короткое имя         	Петров И.А.
Короткое имя         	Жариков А.В.
Короткое имя         	Зубров Ю.Д.

спсб
13 июл 10, 11:01    [9093311]     Ответить | Цитировать Сообщить модератору
 Re: Два столбца в один столбец и подписать кто есть кто  [new]
Valergrad
Member

Откуда:
Сообщений: 703
with t as
(select 'Иванов Иван Викторович' a, 'Иванов И.В.' b from dual union all
 select 'Петров Иван Апельсинович' a, 'Петров И.А.' b from dual union all
 select 'Жариков Аркадий Викторович' a, 'Жариков А.В.'b from dual union all
 select 'Зубров Юшкин Дудкович' a, 'Зубров Ю.Д.' b from dual
)
select 'Длинное имя', t.a from t
union
select 'Короткое имя', t.b from t
13 июл 10, 11:05    [9093349]     Ответить | Цитировать Сообщить модератору
 Re: Два столбца в один столбец и подписать кто есть кто  [new]
Valergrad
Member

Откуда:
Сообщений: 703
union all если короткое имя может совпасть с каким-нибудь длинным.
13 июл 10, 11:06    [9093353]     Ответить | Цитировать Сообщить модератору
 Re: Два столбца в один столбец и подписать кто есть кто  [new]
lexxora
Member

Откуда: xrumer2017.ru
Сообщений: 325
Valergrad,

спасибо. Я правильном направлении думал, ... но медленно ))
13 июл 10, 11:09    [9093382]     Ответить | Цитировать Сообщить модератору
 Re: Два столбца в один столбец и подписать кто есть кто  [new]
Добрый Э - Эх
Guest
-- Тестовые данные:
with t as
(select 'Иванов Иван Викторович' a, 'Иванов И.В.' b from dual union all
 select 'Петров Иван Апельсинович' a, 'Петров И.А.' b from dual union all
 select 'Жариков Аркадий Викторович' a, 'Жариков А.В.'b from dual union all
 select 'Зубров Юшкин Дудкович' a, 'Зубров Ю.Д.' b from dual
)
--
--
-- Основной запрос:
select decode(v.lv, 1,'Длинное имя','Короткое имя') as "Столбец А",
       decode(v.lv, 1, t.a, t.b) as "Столбец Б"
  from t, (select level as lv from dual connect by level <= 2) v
 order by t.a, v.lv

Query finished, retrieving results...

  Столбец А           Столбец Б
------------    --------------------------
Длинное имя     Жариков Аркадий Викторович
Короткое имя    Жариков А.В.
Длинное имя     Зубров Юшкин Дудкович
Короткое имя    Зубров Ю.Д.
Длинное имя     Иванов Иван Викторович
Короткое имя    Иванов И.В.
Длинное имя     Петров Иван Апельсинович
Короткое имя    Петров И.А.

8 row(s) retrieved
13 июл 10, 11:13    [9093418]     Ответить | Цитировать Сообщить модератору
 Re: Два столбца в один столбец и подписать кто есть кто  [new]
-2-
Member

Откуда:
Сообщений: 15330
select *
from t
unpivot (имя for тип_имени in (a as 'Длинное', b as 'Короткое'));
13 июл 10, 13:52    [9095078]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить