Oracle - 查询返回值的第一行

时间:2014-09-12 17:34:38

标签: sql oracle

我是Queries的新手。

如何编写查询以仅从值中提取第一行?

示例 -

select address 
  from user 
 where id =1;

样本输出(单行&不是3行)

Anthony Benoit
490 E Main Street
Norwich CT 06360

我想只获得第一行, 这是Anthony Benoit

2 个答案:

答案 0 :(得分:1)

您可以使用SUBSTR并在第一个new-line字符上编制索引

select substr(lines,0,instr(lines,chr(10))) d
from
(select 'line 1
line2' lines
from dual)

注意chr(10)你最有可能需要改进那部分以支持不同的新行字符(例如chr(13),chr(13)和chr(10)......等)

答案 1 :(得分:0)

假设您的示例输出是三行。

如果您使用的是11g及之前的版本,只需在外部查询中将select * from ... where rownum = 1添加到您发布的查询中,但您还需要在内部查询中添加order by column

如果您使用的是12c,则只需使用ROW LIMIT子句,只需添加此子句FETCH FIRST 1 ROWS ONLY即可。