Select Case Statment单行子查询返回多行

时间:2015-05-29 12:00:35

标签: sql oracle oracle11g

只需返回来自Then的值,但我的查询返回更多1s

    SELECT
CASE  WHEN S.ITEM_ID<>0 THEN 1
END AS "UomLevelEditable"
FROM BIZZXE_V2_SCH.PO_REQUEST_ITEMS S WHERE S.ITEM_Id =209 AND S.UOM_ID= 55

2 个答案:

答案 0 :(得分:2)

如果您希望完全一行,请使用聚合:

SELECT MAX(CASE WHEN S.ITEM_ID <> 0 THEN 1 END) AS "UomLevelEditable"
FROM BIZZXE_V2_SCH.PO_REQUEST_ITEMS S
WHERE S.ITEM_Id = 209 AND S.UOM_ID = 55;

如果您想要最多一行,请使用rownum = 1

SELECT (CASE WHEN S.ITEM_ID <> 0 THEN 1 END) AS "UomLevelEditable"
FROM BIZZXE_V2_SCH.PO_REQUEST_ITEMS S
WHERE S.ITEM_Id = 209 AND S.UOM_ID = 55 AND rownum = 1;

答案 1 :(得分:2)

我认为这可能对您有所帮助,我在下面使用了区别。

[{:id 1 :parent nil :name "a"}
 {:id 2 :parent 1 :name "b"}
 {:id 3 :parent 2 :name "c"}
 {:id 4 :parent 2 :name "d"}
 {:id 5 :parent 4 :name "e"}]