如何从oracle sql中只select1行?
我想使用oracle语法从表DUAL只select1行。 例如,我想执行这个查询: 
 SELECT user FROM DUAL 
 它会有40条logging 但我只需要一个logging。  …而且,我想在没有WHERE子句的情况下实现它。 
我需要在table_name字段中的东西,如:
 SELECT FirstRow(user) FROM DUAL 
	
你使用ROWNUM。
即。
 SELECT user FROM Dual WHERE ROWNUM = 1 
http://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns009.htm
我发现这个“解决scheme”隐藏在其中一个评论中。 自从我查了一会儿,我想突出一点(不能评论或做这样的事情…),所以这是我用的:
 SELECT * FROM (SELECT [Column] FROM [Table] ORDER BY [Date] DESC) WHERE ROWNUM = 1 
这会从表中最新的条目中打印出所需的[Column]条目,假定[Date]总是通过SYSDATE插入。
 在Oracle中没有limit 1条件(即MySQL / PostgresSQL),您需要指定where rownum = 1 。 
  “FirstRow”是一个限制,因此它在where子句中不在select子句中。 这就是所谓的rownum 
 select * from dual where rownum = 1; 
 据我所知,Oracle中的dual表是只有一行的特殊表。 所以,这就足够了: 
 SELECT user FROM dual 
这个语法在Oracle 12c中可用:
 select * from some_table fetch first 1 row only; select * from some_table fetch first 1 rows only; select * from some_table fetch first 10 row only; select * from some_table fetch first 10 rows only; 
^^我只是想certificate行或行(复数)可以被使用而不pipe所需的行数是多less)。
答案是:
你应该使用嵌套查询:
 SELECT * FROM ANY_TABLE_X WHERE ANY_COLUMN_X = (SELECT MAX(ANY_COLUMN_X) FROM ANY_TABLE_X) 
=>在PL / SQL中,“ROWNUM = 1”不等于TSQL的“TOP 1”。
所以你不能使用这样的查询:“select any from any_table_x where rownum = 1 order by any_column_x;” 因为oracle得到第一行然后应用子句的顺序。
如果有任何行会做,请尝试:
 select max(user) from table; 
没有where子句。
 select name, price from ( select name, price, row_number() over (order by price) r from items ) where r between 1 and 5; 
 比select max()更灵活的是: 
 select distinct first_row(column_x) over (order by column_y,column_z,...) from Table_A