![]() |
|
Модераторы: LSD |
![]()
|
|
| integral |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.7.2006 Где: Dnipropetrovs' ;k, Ukraine Репутация: нет Всего: нет |
Здраствуйте,
есть необходимость реализовать преобрахование строк в колонки, т.е. есть такая выборка f1 v1 f2 v2 f3 v3 ... fi vi требуется получить v1 v2 v3 .... vi желательно что бы f1 f2 f3 стали названиями этих колонок, но это не критично. бьюсь весь день Спасибо Это сообщение отредактировал(а) integral - 11.9.2009, 21:32 |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
-------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| integral |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.7.2006 Где: Dnipropetrovs' ;k, Ukraine Репутация: нет Всего: нет |
над подобным вариантом думал, но тут проблема в том что количество элементов в выборке я не знаю заранее, т.е. более правильный вариант постановки задачи:
из f1 v1 f2 v2 ..... fi vi получить v1 v2 .... vi |
|||
|
||||
| Temdegon |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: нет Всего: 9 |
Смотря что тебе нужно потом с данными делать. Для чего тебе это нужно?
Я с Oracle не знаком вообще, но на PostgreSQL мне нужно было реализовать что-то похожее. Есть резалт запроса:
А нужно было вывести из в одной строке. Написал агрегатную функцию, как SUM(), только она суммирует строки. В результате запрос принимает вид
и возвращает
что меня устаривало на 100%. Но если нужно именно что бы каждая строка возвращалась одтдельным полем одной строки, то тут уже надо смотреть в сторону множеств, массивов и преобразований между ними. |
||||||
|
|||||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
Парадигма SQL - ты описываешь структуру результата в конструкции запроса. Структура результата не зависит от набора данных. В твоем случае без динамического формирования текста запроса не обойтись.
-------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| avvo |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 11.9.2007 Репутация: 2 Всего: 4 |
В 11g появилась фича pivot.
Для меньших версий вариант только с динамическим SQL (для неизвестного заранее кол-ва столбцов), можно тут глянуть. Для 11g вот тут описано применение pivot. А вообще, зачем такое нужно? Тем более с неизвестным количеством столбцов? Это ведь явно какой-то клиентский вызов. Просто внутри БД такие результаты, с неизвестным количеством столбцов, не нужны. А на клиенте транспонировать резалтсет гораздо проще, там ведь явно что-то типа Java, Delphi, C++, C# |
|||
|
||||
| integral |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.7.2006 Где: Dnipropetrovs' ;k, Ukraine Репутация: нет Всего: нет |
Всем спасибо за ответы, вы очень помогли
в нашей системе есть возможность клиентам самим создавать дополнительные поля для сушности, описания и значения которых хранятся в других таблицах. потребовалось получить их в скл запросе как обычные поля сущности |
|||
|
||||
![]()
|
| Правила форума "Oracle" | |
|
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Oracle | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |