【发布时间】:2017-03-30 13:36:11
【问题描述】:
当用户填写表单时,某一列会从某些列中提取最新数据并将这些列连接到一个新列(记录的 id)中。现在我选择了正确的列,但我遇到的问题是,对于每个填写的表格,代码只会从第一个填写的记录中获取行。显然TOP 和LIMIT 在Oracle Apex 5 上不起作用,而且似乎ROWNUM = 1 是导致问题的原因。
DECLARE
IDENTITY VARCHAR2(40);
BEGIN
SELECT CONCAT(COL1, CONCAT('-', CONCAT(COL2, COL3)))
INTO IDENTITY FROM TABLE
WHERE ROWNUM = 1;
RETURN IDENTITY;
END;
【问题讨论】:
-
where rownum = 1 使用 rownum 伪列仅返回结果集的第一行。它正在做它编码要做的事情。你想从查询中返回什么,你已经指定了它在做什么但不是你想要的?
-
另外,为了可读性,考虑连接运算符的可读性。选择 col1 || '-' || col2 || col3 ...
-
管道 (||) 不起作用,所以我必须这样做。
-
我希望它获取最新的行,而不是只获取那里的第一行。
-
“管道不工作”。那么你做错了。为什么他们不为你工作?
标签: sql oracle plsql oracle-apex oracle-apex-5