如何使此查询成功运行?

时间:2012-11-26 10:40:27

标签: sql oracle

select (SELECT * FROM TABLE(or_in_list_fn('FV52,1101'))) plant_cd from dual

返回

  

ORA-01427:单行子查询返回多行

where or_in_list_fn returns
FV52
1101

我需要输出

   Plant_cd
   ---------------
   FV52
   1101

3 个答案:

答案 0 :(得分:1)

试试这个:

SELECT column_value AS plant_cd FROM TABLE(or_in_list_fn('FV52,1101'))

答案 1 :(得分:0)

您需要使子查询返回1行和1个字段。您可以使用max()

select (SELECT max(yourfield) FROM TABLE(or_in_list_fn('FV52,1101'))) plant_cd from dual

答案 2 :(得分:0)

不是从另一个select中返回数据,而是直接使用内部查询,因为你在Outside Select中没有做任何事情

SELECT * FROM TABLE(or_in_list_fn('FV52,1101'))

如果你想在外部选择一个过滤器或与另一个表连接,那么在查询的from子句中使用它,如下所示:

select plant_cd.* from (SELECT * FROM TABLE(or_in_list_fn('FV52,1101'))) plant_cd