oracle示例是否与where筛选器配合使用?

oracle示例是否与where筛选器配合使用?,oracle,Oracle,我们使用ORACLE,需要从表中获取一个随机行,以满足特定条件。我搜索并发现该示例在本例中可能有用。 然而,据我所知,Sample返回整个表中指定大小的随机子集。 因此,在我们的例子中,由于我们需要与特定WHERE条件匹配的行,因此查询可能不会返回任何行,即使表中包含该过滤器的行 从中选择列 从表SAMPLE10中选择列,其中column='abc' 其中rownum=1 在上面的查询中,如果10%的样本集不包含任何列为“abc”的行,它将返回空结果,即使90%的样本集可能包含此类行 有什么建议

我们使用ORACLE,需要从表中获取一个随机行,以满足特定条件。我搜索并发现该示例在本例中可能有用。 然而,据我所知,Sample返回整个表中指定大小的随机子集。 因此,在我们的例子中,由于我们需要与特定WHERE条件匹配的行,因此查询可能不会返回任何行,即使表中包含该过滤器的行

从中选择列 从表SAMPLE10中选择列,其中column='abc' 其中rownum=1

在上面的查询中,如果10%的样本集不包含任何列为“abc”的行,它将返回空结果,即使90%的样本集可能包含此类行

有什么建议可以纠正这种行为吗

试试这个:

WITH data AS (SELECT column FROM table WHERE COLUMN='abc')
SELECT column FROM data SAMPLE(10) 
WHERE rownum = 1

你可能想看看。示例并不总是按预期工作。您可能希望在Alex的答案中使用rownumber方法,以确保始终获得随机行。不确定这里的问题是什么。。。列='abc'可能是7%,而不是10%。这就是结果为空的原因。