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

时间:2011-05-26 20:18:57

标签: sql db2 zos

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

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

是否可以运行将构建这样的行的查询

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

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

任何想法? 感谢

1 个答案:

答案 0 :(得分:0)

我认为你可能设计不佳。我可以建议一个替代方案吗?

项目(ID,NAME,DESCRIPTION,ETC ......) 属性(ID,NAME,DESCRIPTION) ItemAttribute(ID,ItemID,AttributeID,Value)

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

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