Возможно ли переупорядочить значения строк таблицы DB2 Zos v8 в столбцы - PullRequest
0 голосов
/ 27 мая 2011

У меня есть данные, которые выглядят так в таблице,

Item Attribute Value
---- --------- -----
cup  color     Red
cup  size      16
cup  type      Plastic

Возможно ли выполнить запрос, который будет строить строку, подобную этой,

Item color size type
---- ----- ---- ----
cup  Red   20   Plastic

Таблица былапостроен таким образом, чтобы я мог добавить дополнительные «атрибуты», только добавив новую строку.Таким образом, запрос должен иметь возможность добавлять столбец в зависимости от количества атрибутов элемента.

Есть идеи?Спасибо

1 Ответ

0 голосов
/ 28 мая 2011

Я думаю, что у вас плохой дизайн. Могу ли я предложить альтернативу?

Элемент (ID, имя, описание, ETC ...) Атрибут (ID, ИМЯ, ОПИСАНИЕ) ItemAttribute (ID, ItemID, AttributeID, Value)

С вышеупомянутым дизайном (который может или не может быть ЛУЧШИМ решением, но, безусловно, будет лучшим), вы можете просто добавить запись ItemAttribute для каждого элемента. Вы должны указать элемент, какой атрибут и значение для этого атрибута. Используя ваш текущий дизайн, вы пытаетесь представить отношение «многие ко многим» в одной таблице, что мне не кажется практичным (многие атрибуты «элементы ко многим»).

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

...