【问题标题】:Trying to create a "List of Values " including a table value and numbers below it试图创建一个“值列表”,包括一个表值和它下面的数字
【发布时间】:2014-10-04 17:03:53
【问题描述】:

所以基本上说我有一个名为“设备”的表,然后其中一列是“数量”,如果我想创建一个采用该数字的值列表,比如数量是 4,值是(数量 - 1) 直到 !> 0,所以在本例中为 (4, 3, 2, 1)

我正在使用 Oracle APEX,并假设我需要一个基于 sql 查询的动态 LOV,但不知道如何获得它。我从未在 PL/SQL 中使用过 for 循环

谢谢

【问题讨论】:

  • 您希望这个数量基于什么?您如何确定选择哪 4 个?

标签: oracle plsql oracle-apex lov


【解决方案1】:

你不需要循环。

select level
from dual
connect by level <= 4
order by level desc;

【讨论】:

  • 我只是以 4 为例,但我需要能够编写适用于任何值的东西,所以基本上对于这种形式的每一行,我需要能够选择我需要多少想要取决于它的具体值,它可以改变,所以我需要一些不是静态的东西。所以在我的情况下,我有一个表“设备”,其中一列是“数量”,所以我需要从设备中选择数量以及从“值减去 1 直到你达到 0”
  • 我也只是以 4 为例。如果需要,对查询进行参数化。
【解决方案2】:

应该这样做。确保我放置/* xxx */ 的位置包含一个仅包含1 条记录的where 子句。您很可能会在此处使用 Device 表的 ID。

SELECT     ROWNUM display_value
,          ROWNUM return_value
FROM       DUAL
CONNECT BY ROWNUM <= (SELECT Quantity FROM Device WHERE /* xxx */)
ORDER BY   ROWNUM DESC;

【讨论】:

  • 谢谢,这对我有用。请注意,您需要执行“SELECT ROWNUM D, ROWNUM F”,其中 D 和 F 可以是任何值,但您需要有两列(第一列是 display_value,第二列是 return_value)。
猜你喜欢
  • 1970-01-01
  • 2018-02-09
  • 2021-09-29
  • 2017-07-05
  • 2021-07-28
  • 1970-01-01
  • 2017-10-11
  • 2020-03-22
相关资源
最近更新 更多