powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Почему в SQL нет DDL команды TRANSPOSE?
40 сообщений из 40, показаны все 2 страниц
Почему в SQL нет DDL команды TRANSPOSE?
    #36206305
transposer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Этот вопрос не о том как транспонировать конкретную таблицу.
Мне интересен теоретический ответ о том, почему в стандарте SQL до сих пор нет просто одной команды, которая бы это делала? Есть теоретическая проблема, которая не дает написать такую функцию и встроить ее в SQL?

В SAS есть proc transpose; в разных программах типа Teradata Miner есть модули, которые пишут SQL для этого; на форуме тоже можно найти разные скрипты.

А вот так чтобы сказать
Код: plaintext
create table as ( select transpose (table_x, parameters) ) ; 
такого нигде нет.
Почему?
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36206343
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я полагаю, что бы быдлокодеры не пытались сделать транспозиорование терабайтной таблицы.

Есть же OLAP?
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36206351
transposer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2, придумай совершенную защиту от дурака и природа создаст еще более совершенного дурака.
Твой аргумент из области практики. Как это в теории то объяснятеся?

Ну и потом, OLAP это как известно online analytical processing. А я говорю про data definition language ddl. Т.е. вот мне для определенной цели нужна транспонированная таблица (иногда и несколько терабайт может занимать). Например для последующего статистического моделирования. Там никакого OLAP нет. В данный момент приходится практически ручками sum (case x) statements писать.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36206444
wildwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
transposer,

А вас не смущает например то, что у столбца есть тип данных, а у строки нет? Как будет выглядеть ваше "parameters"?
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36206447
transposer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wildwind,
Не понял проблемы. Из вполне определенной таблицы со столбцами по вполне определенному алгоритму получается другая таблица тоже со столбцами. Причем здесь тип данных строк?
И вот SAS proc transpose же написали. Это просто как пример, что вполне можно такую функцию написать и поддерживать. Тип данных в SAS тоже существует как понятие.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36206452
wildwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
transposer вот SAS proc transpose же написали.
Так и вы напишите. :)
Она ведь будет всего лишь генерить нужный SQL.

Почему процедура, генерирующая SQL, не встроена в синтаксис? Потому что вам нужно одно транспонирование, мне чуть другое, а кому-то сильно другое. Всего не предусмотришь.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36206610
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
transposer пишет:
> Этот вопрос не о том как транспонировать конкретную таблицу.
> Мне интересен теоретический ответ о том, почему в стандарте SQL до сих
> пор нет просто одной команды, которая бы это делала? Есть теоретическая
> проблема, которая не дает написать такую функцию и встроить ее в SQL?

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

Для начала проблема будет с бесконечной мощностью множества записей и
конечностью множества атрибутов. Конечное множество неравномощно бесконечному,
оно не может отображаться в бесконечное однозначно. Грубо говоря, бесконечное
число строк в конечное число столбцов не запихать.

Ну и вообще, операция бессмысленная.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36206679
transposer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivНу и вообще, операция бессмысленная
Козьма Петрович ПрутковНекоторые вещи нам непонятны не потому, что наши понятия слабы, а потому, что сии вещи не входят в круг наших понятий
Операция осмысленная и приносит конкретные результаты в виде таблицы. Так же как и create as select. Она вообще является подмножеством select.

Конечное множество не равномощно бесконечному, но на то и существуют отображения множеств, в народе называемые функциями. Вот документации реализации такой функции proc transpose в SAS
http://analytics.ncsu.edu/sesug/2005/TU12_05.PDF
Почему ее не включают в SQL?

Ну и вообще любая функция базы данных в реальности действует на ограниченном множестве параметров и значений, так как место на диске ограничено. В нашем случае число distinct значений в колонке, которые должны стать именами новых колонок должно быть ограничено.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36206680
transposer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wildwind,

ну вот для SAS написали и стандартизировали. Почему не стандартизировать и в SQL?
При транспонировании нужно не так уж много разнообразных стратегий. В Teradata есть даже графическая утилитка, которая такие SQL пишет, вот взять бы ее (в текстовом формате) и принять в стандарт.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36206682
transposer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати вот пример еще такой неочевидной функции: "connect by".
Она только относительно недавно появилась в стандарте, как я помню
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36207109
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
transposer wrote:

> Операция осмысленная и приносит конкретные результаты в виде таблицы.
> Так же как и create as select. Она вообще является подмножеством select.
>
> Конечное множество не равномощно бесконечному, но на то и существуют
> отображения множеств, в народе называемые функциями.

Я же написал и по-простому тоже. Нельзя создать таблицу с
потенциально бесконечным числом столбцов. Конечно, в конкретной
таблице кол-во строк конечное. Но оно может быть например 100 000.
В современных СУБД кол-во полей обычно ограничено, и ограничения
эти -- 100-200 полей. Так что тупо не влезет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36207153
transposer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

странный разговор получается, я вам говорю, да вы и не отрицаете, что есть конкретные реализации задачи транспонирования. А в следующем предложении вы говорите, что это невозможно и не нужно.

Может осталось незамеченным, что при транспонировании происходит агрегация по distinct value из первой колонки?
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36207553
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
transposer wrote:

> странный разговор получается, я вам говорю, да вы и не отрицаете, что
> есть конкретные реализации задачи транспонирования. А в следующем
> предложении вы говорите, что это невозможно и не нужно.
>
> Может осталось незамеченным, что при транспонировании происходит
> агрегация по distinct value из первой колонки?

Дык ты же не определил операцию транспонирования чётко.
Определи -- поговорим.

Но, думаю, что ничего от наличия distinct -а не изменится.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36207790
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
transposerПочему?Я думаю, что каждый из здесь присутствующих сможет привести пример операции, которую приходилось делать, но которая не имеет специально команды в стандарте SQL. И, по моим ощущениям, транспонирование таблицы отнюдь не самая частая из таких операций (хотя у Вас могут быть другие ощущения). Но судя по тому, что еще ни один из производителей СУБД не реализовал у себя такой команды, в стандарт ей явно рановато.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36208081
transposer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bogdanov Andrey,

Кстати, было бы интересно узнать, какие еще такие "полустандартные" паттерны приходится часто кодировать? Но такие, чтобы были с претензией на фундаментальность.

Из того, чего раньше не было, я вспоминаю natural join (oracle) и width_bucket (teradata).
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36208141
wildwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov Andreyеще ни один из производителей СУБД не реализовал у себя такой команды
Это не так. Microsoft издавна любит сводные таблицы (за что его любит офисный пользователь, воспитанный на Экселе), поэтому в Access есть TRANSFORM, а в SQL Server есть PIVOT.

Bogdanov Andreyв стандарт ей явно рановато.
С этим можно согласиться.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36208534
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
transposerКстати, было бы интересно узнать, какие еще такие "полустандартные" паттерны приходится часто кодировать? Но такие, чтобы были с претензией на фундаментальность.Ну не знаю насчет фундаментальности. Я вот ни разу в жизни не испытал потребности в транспонировании. По-моему, так совершенно ненужная штука и уж точно ничего фундаментального из себя не представляющая. А вот органичение на "непересекаемость" интервалов мне нужно регулярно. Почему такого ограничения нет в стандарте SQL?
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36213778
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyЯ вот ни разу в жизни не испытал потребности в транспонировании. По-моему, так совершенно ненужная штука и уж точно ничего фундаментального из себя не представляющая.
Она просто не серверная. Это клиентская операция, операция представления данных. На сервер её тянут только из-за однозвенного мышления.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36249246
transposer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerBogdanov AndreyЯ вот ни разу в жизни не испытал потребности в транспонировании. По-моему, так совершенно ненужная штука и уж точно ничего фундаментального из себя не представляющая.
Она просто не серверная. Это клиентская операция, операция представления данных. На сервер её тянут только из-за однозвенного мышления.
в моем мире сервер занимается тем, что нужно больше одного раза или требует ресурсов недоступных на клиенте.

На клиенте ресурсы выбираются с точки зрения баланса цены X клиентов и цены этих ресурсов на сервере плюс пропускная способности сети, взвешенных по частоте использования и пиковой нагрузке. Ну и клиент это обычно обычный PC или laptop и у них есть еще свои ограничения в том числе и в образованности техсуппорта.

Так что транспонирование таблиц происходит в основном на сервере, на клиенте либо сеть не позволит, либо частота использования сделает бессмысленным.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36249579
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
transposerв моем мире сервер занимается тем, что нужно больше одного раза
"Нарисовать гистограмму по указанным цифрам" нужно явно более одного раза. В вашем мире её рисуют на сервере и передают клиенту в виде bmp?

transposer или требует ресурсов недоступных на клиенте.
В вашем мире на серверах стоит специальный транспонирующий процессор?

transposerНа клиенте ресурсы выбираются с точки зрения баланса цены X клиентов и цены этих ресурсов на сервере плюс пропускная способности сети, взвешенных по частоте использования и пиковой нагрузке.
Тяжело, но в целом верно.

transposerНу и клиент это обычно обычный PC или laptop и у них есть еще свои ограничения
Безусловно. Максимум, что этот клиент потянет - ворд, фотошоп или там какая квака. Транспонирование таблицы ему не по зубам.

transposer в том числе и в образованности техсуппорта.
И техсаппорт, безусловно, не в силах адекватно ухаживать за железом, способным на столь сложные операции.

transposerТак что транспонирование таблиц происходит в основном на сервере, на клиенте либо сеть не позволит,
Надо же, какая умная и капризная сеть. А стихи Вознесенского она тоже не пропускает?

transposerлибо частота использования сделает бессмысленным.
Кэширование результата (транспонированной таблицы) - единственное, что носит хотя бы следы смысла в присутствии на сервере. Но я бы не ожидал увидеть задачу, где такое кэширование даёт реальный выигрыш.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36251809
Денис Ильин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PIVOT-а конечно в стандарте нету, но оно таки влезет в конце концов.
вот кстати, ещё MERGE тоже напрашивается, уж не знаю, есть ли он там..
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #36252351
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer+100
Добавлю, что клиентское ПО (в отличие от серверного) можно написать так, чтобы физическое транспонирование (т.е. перемещение данных в памяти) вообще было не нужно. Например, если выборка содержится в двумерном массиве (или любой другой структуре, значения из которой можно прочитать, указав два индекса), то достаточно будет при обращении к этому массиву поменять местами индексы.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Почему в SQL нет DDL команды TRANSPOSE?
    #37174255
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
transposerПочему не стандартизировать и в SQL ?Потому что в стандарте SQL еще на этапе parse должно быть известно число столбцов. Соответственно транспонировать в заранее неизвестное число столбцов без динамической генерации запроса - невозможно. Тем не менее у Oracle есть возможность сделать нечто подобное путем использования pivot xml. Вот только подумай надо оно тебе? Это может быть полезно для возврата на клиент ну никак не для создания таблицы.
transposerКстати вот пример еще такой неочевидной функции: "connect by".
Она только относительно недавно появилась в стандарте, как я помнюТебе редко в жизни попадаются древовидные данные?
Оператор connect by появился а Oracle со второй версии в 1979 году. Лично мне более удивительно почему CTE в MSSQL появились только с 2005.
А стандарт - это не более чем рекомендации к реализации того или иного функционала. Каждый разработчик СУБД реализует свое видение стандарта.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Почему в SQL нет DDL команды TRANSPOSE?
    #37732512
transposer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbms_photoshop,

я пока втыкаю в ответы предыдущих ораторов. Но в вопросе создания транспонированной таблицы ответ простой, такие таблицы нужны для разных злых data mining или аналитических тулзов. Просто если ты хочешь промоделировать y~(x1,x2,x3....x100), а эти иксы хранятся в нормализованной табличке, приходится писать дурацкие case when then end.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37732516
transposer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и кстати, чтобы два раза не вставать. Может я чего так и не понял за два года, но case when по прежнему мой лучший друг. достало.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37732873
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
transposerи кстати, чтобы два раза не вставать. Может я чего так и не понял за два года, но case when по прежнему мой лучший друг. достало.Если внимательней читать - можно увидеть слово pivot.
В Oracle и MSSQL оно есть.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37733224
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
transposerМне интересен теоретический ответ о том, почему в стандарте SQL до сих пор нет просто одной команды, которая бы это делала?


Потому что SQL работает с таблицами, а не с матрицами. Это совсем не одно и то же.
Если интересно, в чём разница, найди сам определение математической матрицы и реляционной таблицы.

Дам подсказку: кол-во столбцов в таблице всегда конечно и фиксировано во время жизни этой таблицы.
Кол-во строк таблицы не ограничено, и может потенциально быть бесконечно большим.

transposerЕсть теоретическая проблема, которая не дает написать такую функцию и встроить ее в SQL?


Да, есть. Люди, пишущие на SQL работают с реляционными данными, а не с матрицами, такие операции
им просто ни на фиг не нужны. Ну и они теоретически не могут быть реализованы.

transposerВ SAS есть proc transpose; в разных программах типа Teradata Miner есть модули, которые пишут SQL для этого; на форуме тоже можно найти разные скрипты.

А вот так чтобы сказать
Код: sql
1.
create table as ( select transpose (table_x, parameters) ) ; 

такого нигде нет.
Почему?

Почему такое невозможно в SQL я уже написал. Почему такие функции есть во всяких OLAP-средствах -- потому что 95 процентов людей идиоты, и им не объяснить, что эту операцию невозможно реализовать на реляционной таблице, потому что они как привыкли работать в своём долбанутом Excel-е, так и думают, что с таблицей можно делать то же самое.
И этим идиотам не вдолбить в их башку, что эта операция им не нужна и что на самом деле они хотят распечатать красивый отчёт, и в общем-то по горизонтали его смотреть или по вертикали -- один хрен.
А конкуренция заставляет производителей реализовывать такие вещи, потому что просто если они это не сделают, то эти бараны у них не купят их продукт.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37733227
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, купился на некропостинг.

Модераторы, удалите пож.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37733229
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> и кстати, чтобы два раза не вставать. Может я чего так и не понял за два года,
> но case when по прежнему мой лучший друг. достало.

А, всё-таки мой пост будет полезен, раз он за 2 года так ничего и не понял.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37733233
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> и кстати, чтобы два раза не вставать. Может я чего так и не понял за два года,
> но case when по прежнему мой лучший друг. достало.

Да, ещё на счёт теории.

Если ты транспонируешь таблицу, несколько значений одной колонки из разных строк
становятся значениями разных колонок одной строки. Получающаяся
таблица нарушает 1ую нормальную форму рел. таблицы.
Далее все вытекающие.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37734641
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПочему такое невозможно в SQL я уже написал. Почему такие функции есть во всяких OLAP-средствах -- потому что 95 процентов людей идиоты, и им не объяснить, что эту операцию невозможно реализовать на реляционной таблице, потому что они как привыкли работать в своём долбанутом Excel-е, так и думают, что с таблицей можно делать то же самое.
И этим идиотам не вдолбить в их башку, что эта операция им не нужна и что на самом деле они хотят распечатать красивый отчёт, и в общем-то по горизонтали его смотреть или по вертикали -- один хрен.
А конкуренция заставляет производителей реализовывать такие вещи, потому что просто если они это не сделают, то эти бараны у них не купят их продукт.Транспонивароть с известным числом столбцов позволяет pivot.
С неизвестным - pivot for xml in Oracle, как я уже сказал.
Если хочется полной гибкости - ODCITable .
Да, в SQL на этапе parse должно быть известно число столбцов, но ты не поверишь, в реальной жизни огромное число случаев когда пользователям есть смысл видеть данные по двум осям. Это я не к тому, что есть реальный смысл именно в транспонировании, а к тому, что на SQL все возможно при желании и видеть здесь твой бред про идиотов написанный в таком безапелляционном тоне несколько смешно.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37734871
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopДа, в SQL на этапе parse должно быть известно число столбцов, но ты не поверишь, в реальной жизни огромное число случаев когда пользователям есть смысл видеть данные по двум осям.
Это не означает, что SQL должен возвращать выборку по двум осям. Равно как "огромное число случаев когда пользователям есть смысл видеть график", но это не означает, что SQL должен возвращать картинку этого графика.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37734909
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerdbms_photoshopДа, в SQL на этапе parse должно быть известно число столбцов, но ты не поверишь, в реальной жизни огромное число случаев когда пользователям есть смысл видеть данные по двум осям.
Это не означает, что SQL должен возвращать выборку по двум осям.Я с этим и не спорил.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37734991
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> в реальной жизни огромное число случаев когда пользователям есть смысл видеть
> данные по двум осям. Это я не к тому, что есть реальный смысл именно в
> транспонировании, а к тому, что на SQL все возможно при желании и видеть здесь

Это всё не SQL уже.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37735111
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> в реальной жизни огромное число случаев когда пользователям есть смысл видеть
> данные по двум осям. Это я не к тому, что есть реальный смысл именно в
> транспонировании, а к тому, что на SQL все возможно при желании и видеть здесь

Это всё не SQL уже.
Пожалуй тоже соглашусь. Это дело "отображающего" средства.
Хотя и можно придумать случай, когда на веб страничке надо отобразить данные по двум осям и логику выносить из базы по некоторым причинам нецелесообразно.
З.Ы. Просто не надо было так про ОЛАП и эксель.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37735114
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopХотя и можно придумать случай, когда на веб страничке надо отобразить данные по двум осям и логику выносить из базы по некоторым причинам нецелесообразно.
dbms_xplan.display() :)
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37735141
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerdbms_photoshopХотя и можно придумать случай, когда на веб страничке надо отобразить данные по двум осям и логику выносить из базы по некоторым причинам нецелесообразно.
dbms_xplan.display() :)Не понял намека.
dbms_xplan.display() возвращает коллекцию dbms_xplan_type который собой представляет
Код: sql
1.
dbms_xplan_type as object (plan_table_output varchar2(300))

То есть, несколько колонок склеены в одну. Не вижу здесь горизонтальной оси.
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37735174
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Пожалуй тоже соглашусь. Это дело "отображающего" средства.
> Хотя и можно придумать случай, когда на веб страничке надо отобразить данные по
> двум осям и логику выносить из базы по некоторым причинам нецелесообразно.

Это -- типичная логика представления данных. В БД ей делать нечего.
Это ещё можно реализовать на среднем слое, на всяких там Java, PHP,
а ещё лучше -- на клиенте, напр. на JS.

> З.Ы. Просто не надо было так про ОЛАП и эксель.

Надо, надо.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37735178
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> То есть, несколько колонок склеены в одну. Не вижу здесь горизонтальной оси.

А какая им разница, как 1НФ нарушать, так или эдак ?
Давай, лепи всё в строку, а на клиенте -- парсить строку и разбирать по колонкам...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в SQL нет DDL команды TRANSPOSE?
    #37735220
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv> З.Ы. Просто не надо было так про ОЛАП и эксель.

Надо, надо.Ага, спасибо. Этот комент говорит о высоком профессионализме и знании в ОЛАП.

З.Ы. Я предпочитаю не лепить с последующим распарсиванием, если этого можно вменяемыми средствами избежать.
Одно дело если источник данных SSAS, другое если Oracle, третье если Access.
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Почему в SQL нет DDL команды TRANSPOSE?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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