crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> FireBird: как преобразовать строки в столбцы?
Litkevich Yuriy
  опции профиля:
сообщение 18.12.2008, 15:44
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Никак не дается мне одна задачка, может кто-нибудь направит на путь истинный (хотябы даже мысли в слух).

Дано:
Хранимая Процедура (ХП) выбора FooProc(id INTEGER)
возвращает набор данных (N строк) из одного столбца для заданного id
Value
-------
value1
value2
...
valueN


Задача:
Сделать ХП MyProc(A INTEGER, B INTEGER) возвращаеющую набор данных (M строк) из N столбцов (по числу строк первой) плюс id в диаппазоне от A до B
т.е.:
ID    | Value1 | Value2 |... | ValueN
------------------------------------------
A     |value1  |value2  |... | valueN
A+1   |value1  |value2  |... | valueN
...
B     |value1  |value2  |... | valueN


где N - фиксированное целое число


----
FireBird 2.0
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Tonal
  опции профиля:
сообщение 19.12.2008, 15:01
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

Спасибо сказали: 69 раз(а)




Репутация:   17  


В Firebird процедура должна возвращать фиксированное количество столбцов.
На версии 2.1
Можно извернутся с помощью EXECUTE STAIMENT + EXECUTE BLOCK + GTT но мне кажется это ужасный изврат.

Не проще ли выдернуть все данные на клиента и там извращаться?

П.С. В MS SQL & ORACL есть специальная конструкция PIVOT. Я не в курсе насчёт её стандартности.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.4.2024, 13:57