Oracle:使用其中ROWNUM=1
章节 只是一个简单的问题。我只需要从存储的进程返回一行,但无论我将where子句放在何处,都会出现错误。有人能看一下(由于篇幅太长而删减)代码并告诉我它应该放在哪里吗Oracle:使用其中ROWNUM=1,oracle,Oracle,章节 只是一个简单的问题。我只需要从存储的进程返回一行,但无论我将where子句放在何处,都会出现错误。有人能看一下(由于篇幅太长而删减)代码并告诉我它应该放在哪里吗 SELECT **values** INTO **variables** FROM **table** _WHERE ROWNUM = 1_ INNER JOIN **other table** ON
SELECT **values**
INTO **variables**
FROM **table**
_WHERE ROWNUM = 1_
INNER JOIN **other table**
ON **join target**
ORDER BY **sort criteria**;
_WHERE ROWNUM = 1_
谢谢我相信这是构造rownum查询的方法
SELECT * FROM
INTO **Variables * *
( SELECT * FROM X
WHERE Y
ORDER BY Z
)
WHERE ROWNUM = 1;
也可以查看这篇博文:你几乎是对的。将WHERE子句放在联接之后,但放在ORDER BY之前
SELECT **values**
INTO **variables**
FROM **table**
INNER JOIN **other table**
ON **join target**
_WHERE ROWNUM = 1_
ORDER BY **sort criteria**;
然而,这并不会像您所想的那样——orderby在where子句之后求值;这意味着这将只选择它找到的第一条记录(满足连接条件),然后对该行进行排序(这显然是一个no-op)
其他答案(例如IvoTops)给出了如何根据排序标准获取第一条记录的想法。包括您将
rownum
放置在问题中现在包含尝试的位置,如果我尝试此操作,它抱怨我缺少一个右括号。它在数据库中以一个非常简单的形式在一个简单的表上运行时没有错误吗?这是正确的方法,您一定是错过了一些东西才导致了错误。
SELECT **values**
INTO **variables**
FROM **table**
INNER JOIN **other table**
ON **join target**
_WHERE ROWNUM = 1_
ORDER BY **sort criteria**;