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

Откуда: Боярышник
Сообщений: 2170
Можно ли сделать что-то вроде этого?:
with
x as
(
	select rownum as i,
			sysdate as some_data,
			dbms_random.value as some_other_data
		from dual
		connect by rownum < 10
),
y as
(
	select rownum as i
		from dual
		connect by rownum < 15
)
select y.i,
		(select some_data,
				some_other_data
			from x
			where i = y.i)
	from y
Спасибо
7 дек 10, 16:48    [9900392]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вернуть несколько колонок из scalar subquery?  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
--Eugene--
Можно ли сделать что-то вроде этого?:
with
x as
(
	select rownum as i,
			sysdate as some_data,
			dbms_random.value as some_other_data
		from dual
		connect by rownum < 10
),
y as
(
	select rownum as i
		from dual
		connect by rownum < 15
)
select y.i,
		(select some_data,
		some_other_data
			from x
			where i = y.i)
	from y
Спасибо

нет. нельзя. кстати -
[FIXED ru.wikipedia.org]Скаляр (от лат. scalaris — ступенчатый) — величина (возможно переменная, то есть функция), каждое значение которой может быть выражено одним числом (чаще всего подразумевается действительное число).можно ~
with
x as
(
	select rownum as i,
			sysdate as some_data,
			dbms_random.value as some_other_data
		from dual
		connect by rownum < 10
),
y as
(
	select rownum as i
		from dual
		connect by rownum < 15
)
select y.i,*.x
	from y
,(select some_data,
           some_other_data
    from x
) x
where x.i = y.i
7 дек 10, 16:57    [9900458]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вернуть несколько колонок из scalar subquery?  [new]
_Nikotin
Member

Откуда: СПб
Сообщений: 2965
можно склеить в строчку
select y.i,
       (select to_char(some_data)||'/'||to_char(some_other_data)
	from x
	where i = y.i)
from y
или вернуть объектный тип
create type two_field is object (a number, b number);
/
select c.ab.a, c.ab.b
from (select (select two_field(1,2) from dual) ab from dual) c;
7 дек 10, 17:06    [9900516]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить