powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Развернуть столбец в запись (строку)
12 сообщений из 12, страница 1 из 1
Развернуть столбец в запись (строку)
    #39424000
OraStarter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят привет!

Подскажите, как можно результирующий набор (столбец) представить представить в виде записи таблицы (строка)?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select level  from dual      
       connect by level<4

Возвращает:
1
2
3

А хотелось бы вот так:
1   2    3



Чтобы результат сразу заинсертить в таблицу, состоящую из трех столбцов.
...
Рейтинг: 0 / 0
Развернуть столбец в запись (строку)
    #39424005
Lary Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OraStarter,



Код: plsql
1.
2.
select listagg(level, ' ') within group (order by 1) "хз" from dual      
connect by level < 4;
...
Рейтинг: 0 / 0
Развернуть столбец в запись (строку)
    #39424018
OraStarter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lary DenisOraStarter,



Код: plsql
1.
2.
select listagg(level, ' ') within group (order by 1) "хз" from dual      
connect by level < 4;



Не совсем то! Этот запрос возвращает одну запись, в которой результат представлен в виде строки. А нужно чтобы он вернули три записи (три столбца)
...
Рейтинг: 0 / 0
Развернуть столбец в запись (строку)
    #39424020
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lary DenisOraStarter,
Код: plsql
1.
2.
select listagg(level, ' ') within group (order by 1) "хз" from dual      
connect by level < 4;


Сагрились на слово "строка"?

OraStarter Подскажите, как можно результирующий набор (столбец) представить представить в виде записи таблицы (строка)?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
  MAX( CASE WHEN LEVEL = 1 THEN LEVEL END ) AS v1,
  MAX( CASE WHEN LEVEL = 2 THEN LEVEL END ) AS v2,
  MAX( CASE WHEN LEVEL = 3 THEN LEVEL END ) AS v3
FROM
  dual
CONNECT BY
  LEVEL < 4
...
Рейтинг: 0 / 0
Развернуть столбец в запись (строку)
    #39424025
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OraStarterНе совсем то! Этот запрос возвращает одну запись, в которой результат представлен в виде строки. А нужно чтобы он вернули три записи (три столбца)
А вот это ты сейчас фигню сморозил. Это потому что сам не понимаешь, что хочешь получить, и от этого не можешь решить задачу самостоятельно...
...
Рейтинг: 0 / 0
Развернуть столбец в запись (строку)
    #39424032
OraStarter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Руслан ДамировичOraStarterНе совсем то! Этот запрос возвращает одну запись, в которой результат представлен в виде строки. А нужно чтобы он вернули три записи (три столбца)
А вот это ты сейчас фигню сморозил. Это потому что сам не понимаешь, что хочешь получить, и от этого не можешь решить задачу самостоятельно...

Ну почему же? Я же написал, что для инсерта в таблицу, состоящую из трех столбцов. Возврат трех записей.
...
Рейтинг: 0 / 0
Развернуть столбец в запись (строку)
    #39424048
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OraStarter,

pivot\unpivot
...
Рейтинг: 0 / 0
Развернуть столбец в запись (строку)
    #39424061
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OraStarter,
OraStarterПодскажите, как можно результирующий набор (столбец) представить представить в виде записи таблицы (строка)?...
А нужно чтобы он вернули три записи (три столбца)

Приведи в порядок бардак, который у тебя в голове творится, иначе ты в этой профессии далеко не уйдешь.
Реляционная модель данных , Отношение (реляционная модель)
РЕЗУЛЬТИРУЮЩИЙ НАБОР, ТАБЛИЦА = ОТНОШЕНИЕ
СТРОКА = КОРТЕЖ
СТОЛБЕЦ, ЗНАЧЕНИЕ СТОЛБЦА = АТРИБУТ
И тогда не нужно уточнять, что ты имеешь в виду под словом "ЗАПИСЬ".
...
Рейтинг: 0 / 0
Развернуть столбец в запись (строку)
    #39424150
Lary Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vint OraStarter,

pivot\unpivot

все равно же придется явно перечислять либо наименования столбцов, либо в xml позицию.

Кроме как через pl/sql не вижу решения.

Да и тема эта поднималась не раз (и не только на sql.ru). Вроде как сошлись на том, что это невозможно (без динамики).

Если я ошибаюсь - поправьте.
...
Рейтинг: 0 / 0
Развернуть столбец в запись (строку)
    #39424255
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lary DenisВроде как сошлись на том, что это невозможно (без динамики)."Это" - это что?

http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=696977&msg=12351249] в SQL на этапе parse должно быть известно число столбцов

Это особенность языка и все реализации для всех СУБД этому соответсвуют.
При использовании, например, MDX такого ограничения нет.
...
Рейтинг: 0 / 0
Развернуть столбец в запись (строку)
    #39424262
MaximaXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lary Denis
все равно же придется явно перечислять либо наименования столбцов, либо в xml позицию.

Кроме как через pl/sql не вижу решения.

Да и тема эта поднималась не раз (и не только на sql.ru). Вроде как сошлись на том, что это невозможно (без динамики).

Если я ошибаюсь - поправьте.

Как-то странно звучит, а Вы хотите чтоб oracle сам решил что Вам надо вставить и куда? И чтоб, гад такой, не ошибся ...
...
Рейтинг: 0 / 0
Развернуть столбец в запись (строку)
    #39424272
Lary Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop "Это" - это что?

Относительно вопроса топикстартера.


MaximaXXL Как-то странно звучит, а Вы хотите чтоб oracle сам решил что Вам надо вставить и куда? И чтоб, гад такой, не ошибся ...

Я, быть может и хочу, но не озвучиваю) А вот OraStarter мечтает об этом.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Развернуть столбец в запись (строку)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]