Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle:使用其中ROWNUM=1_Oracle - Fatal编程技术网

Oracle:使用其中ROWNUM=1

Oracle:使用其中ROWNUM=1,oracle,Oracle,章节 只是一个简单的问题。我只需要从存储的进程返回一行,但无论我将where子句放在何处,都会出现错误。有人能看一下(由于篇幅太长而删减)代码并告诉我它应该放在哪里吗 SELECT **values** INTO **variables** FROM **table** _WHERE ROWNUM = 1_ INNER JOIN **other table** ON

章节

只是一个简单的问题。我只需要从存储的进程返回一行,但无论我将where子句放在何处,都会出现错误。有人能看一下(由于篇幅太长而删减)代码并告诉我它应该放在哪里吗

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**;