是否可以将 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