![](/img/trans.png)
[英]How to get first change of column for a row in Oracle table through SQL?
[英]Get first row in Oracle Sql
我试图只获得此查询的第一行。 查询不返回顶行。 这是查询。
SELECT DISTINCT name, age
FROM donates, persons
WHERE name = donor
AND name IN (SELECT receiver FROM donates)
AND ROWNUM <= 1
ORDER BY age DESC;
当我运行查询时,它返回Chirs |35
。 没有ROWNUM <=1
这就是表格的样子。
NAME | AGE
-------------
george | 62
Chris | 35
zara | 24
我认为最好的方法是使用子查询,因为在订单之前查看rownum所以:
select * from (
SELECT DISTINCT name, age
FROM donates, persons
WHERE name = donor
AND name IN (SELECT receiver FROM donates)
ORDER BY age DESC
) where ROWNUM <= 1;
如需更长时间的阅读,请访问http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html
尝试使用ROWID
而不是像这样的ROWNUM
:
SELECT * FROM TABLE_NAME WHERE ROWID = (SELECT MIN(ROWID) FROM TABLE_NAME)
你试图得到一个年龄最小的那个,所以我建议你使用Min sql内置函数:
SELECT name, Min(age)
FROM donates, persons
WHERE name = donor
AND name IN (SELECT receiver FROM donates)
避免rownum是一种很好的做法。 在这里,您可以获得更加语义和高效的查询。
希望它有所帮助,问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.