是否可以将 DB2 Zos v8 表行值重新排序为列

Posted

技术标签:

【中文标题】是否可以将 DB2 Zos v8 表行值重新排序为列【英文标题】:Is it possible reorder DB2 Zos v8 Table Row values into Columns 【发布时间】:2011-05-26 20:18:57 【问题描述】:

我的表格中有这样的数据,

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

是否可以运行这样的查询来构建一行,

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

表格是以这种方式构建的,因此我可以通过仅添加新行来添加其他“属性”。因此查询需要能够根据项目的属性数量添加列。

有什么想法吗? 谢谢

【问题讨论】:

【参考方案1】:

我认为您的设计可能很糟糕。我可以推荐一个替代方案吗?

项目(ID、名称、描述、等等...) 属性(ID、名称、描述) ItemAttribute(ID, ItemID, AttributeID, Value)

使用上述设计(可能是也可能不是最好的解决方案,但肯定会更好),您可以简单地为每个项目添加一个 ItemAttribute 记录。您将指定项目、哪个属性以及该属性的值。使用您当前的设计,您正试图在单个表中表示多对多关系,这对我来说似乎不切实际(许多项目对多属性)。

总之,我不认为你所要求的可以用静态 SQL 语句来完成。使用您当前的设置,您可以动态生成 SQL 语句,方法是首先选择给定项目的所有记录,然后检查您选择了哪些属性,并相应地构造您的 select 子句。

【讨论】:

这是给我的桌子设计,不得不用。

以上是关于是否可以将 DB2 Zos v8 表行值重新排序为列的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP Cloud Foundry 应用程序连接到 IBM zOS 系统/DB2 表

DB2 Zos 浅谈 - DB2 LUW VS DB2 Zos

无法将 zOS DB2 与 python ibm_db 连接

用于模式的 zOS 目录表上的 DB2?

Db2 9.1 zos 上的 SOAPHTTPNV

DB2 v10 zos:识别空闲索引值