在给定的情景中,我们将几种成分混合到中间产品批次中 . 这些中间产品批次用于进一步的中间产品或成品批次 . 在成分和成品之间存在不同量的中间步骤 .
要查找给定成品批次中使用的所有批次,我想编写如下的Oracle SQL:
SELECT
something
FROM (
SELECT
something_else
FROM DB_TABLE
START WITH DB_TABLE.OUTPUT = START_VALUE
CONNECT BY NOCYCLE PRIOR DB_TABLE.OUTPUT = DB_TABLE.INPUT
) QRY_NAME
WHERE START_VALUE = '1400929801'
我知道,上面这个例子不起作用,但它显示了我正在寻找的东西 .
所以,我需要在外部查询的where子句中定义start的值 - 但是不知道如何 .
查询将嵌入到软件中,用户只能定义where子句 .
1 回答
假设您出于某种原因需要在外部查询中具有起始值,您可以尝试以下操作:
它只是执行您的查询,添加一列以保留根值,以便您可以将其用作外部查询中的过滤器 .
但是,如果只需要外部查询来限制结果数,则可以在内部查询中使用起始值,然后使用外部查询仅使用某些条件限制结果集 . 例如:
根据您的需要,您甚至可以在内部查询中设置限制条件,而不使用外部查询,但这取决于您希望如何限制结果集