Subquery在Oracle SQL中返回多行

时间:2015-01-12 07:09:39

标签: sql oracle

我有一个包含多个子查询的复杂SQL查询。 Query返回一个非常大的数据。这些表是动态的,每天都会更新。昨天,查询没有执行,因为其中一个子查询返回了多行。

子查询将是这样的。

Select Value1 from Table1 where Table1.ColumnName = 123456

Table1.ColumnName将动态获取,不会对任何内容进行硬编码。 Table1.ColumnName将从另一个完美运行的子查询中获取。

我的问题是,

  1. 如何查找特定子查询中的哪个值返回两行。

1 个答案:

答案 0 :(得分:1)

  

如何查找特定子查询中的哪个值返回两行。

您需要检查每个子查询是否返回值的单行或多行。您可以使用COUNT功能验证 -

select column_name, count(*) from table_name group by column_name having count(*) > 1

以上是子查询,它检查按每个值分组的行数,如果任何值返回多行,则该值是罪魁祸首。

一旦你知道哪个子查询和相应的列是罪魁祸首,你就可以使用ROWNUMANALYTIC函数来限制行数。