oracle 获取第一条数据

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/laybarbarian/article/details/97766751

关于取第一条数据的sql特此作了一个例子如下:

 

SELECT * FROM tableName where fd_rt = 'A' 
--and rownum=1 
ORDER BY fd_date DESC 
标题

正常说 第一条数据应为  16bf4eb91606de5e0ff61f94d0f8f20f

在where 后 直接跟条件 使用此sql时结果如下 

SELECT * FROM tableName where fd_rt = 'A' 
and rownum=1 
ORDER BY fd_date DESC 

可是查询结果为 第二条数据

 

正确使用方式为:

SELECT t.* from
(
SELECT * FROM tableName where fd_rt = 'A' ORDER BY fd_date DESC
) t WHERE rownum = 1

rownum作为伪列实际上查询结果为:

SELECT tableName .*,rownum FROM tableName where fd_rt = 'A' 
--and rownum=1 
ORDER BY fd_date DESC 

SELECT t.*,rownum from
(
	SELECT * FROM tableName where fd_rt = 'A' ORDER BY fd_date DESC
) t

猜你喜欢

转载自blog.csdn.net/laybarbarian/article/details/97766751