Oracle:用于分组子级的SQL

时间:2012-07-04 04:06:52

标签: sql oracle

我有这个表,我怎么能查询这个表,在下面传递参数是Item_Name和Spec_Name的样本输出谢谢。

Item_Name   Item_Value     Spec_Name   Spec_Value
---------   ----------     ---------   ----------
Circle      Zed Circle     Diameter    180
Circle      Charlo Circle  Diameter    330
Square      Ash Square     Side        120

Item_Name = Circle和Spec_Name = Diameter:

的示例输出
 Circle             Zed Circle - Diameter
 -------------     ---------------------
 Zed Circle         180
 Charlo Circle      330

我尝试使用MAX()函数,但它只给我330. :(

以下是整个查询:

   SELECT CASE
     WHEN (ITEM_NAME = 'Circle') THEN
      MAX(ITEM_VALUE)
   END AS "Circle",
   CASE
     WHEN (ITEM_NAME = 'Circle' AND SPEC_NAME = 'Diameter') THEN
      MAX(SPEC_VALUE)
   END AS "Circle - Diameter"
  from TBL_SHAPES

编辑用户试过这个,在评论中提及。

CASE WHEN (ITEM_NAME = 'Circle' AND SPEC_NAME= 'Diameter') 
THEN MAX(SPEC_VALUE) END 

非常感谢。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用WHERE

SELECT item_value AS Circle, spec_value AS Diameter
FROM tbl_shapes
WHERE item_name = 'Circle' AND spec_name = 'Diameter'
ORDER BY spec_value