当用户登录我的应用程序时,该行将插入登录日志表中。我想在用户登录系统时打印上次登录时间。我怎样才能获得最后的登录时间?
我已经尝试了max(time)
,但它给了我当前的登录时间,但我想要的是之前的。我怎么能得到这个?
这是我的问题:
select login_time
from tblname
where emp_code = 123
and login_time = (select max(LOGIN_TIME)
from tblname
where emp_code = 123)
答案 0 :(得分:3)
您可以使用ROW_NUMBER
:
WITH Cte AS(
SELECT *,
ROW_NUMBER() OVER(ORDER BY LOGIN_TIME DESC) AS rn
FROM tblname
WHERE emp_code = 123
)
SELECT LOGIN_TIME FROM CTE WHERE rn = 2
不使用CTE:
SELECT LOGIN_TIME
FROM (
SELECT *,
ROW_NUMBER() OVER(ORDER BY LOGIN_TIME DESC) AS rn
FROM tblname
WHERE emp_code = 123
) t
WHERE rn = 2
您还可以使用Oracle ROWNUM
:
SELECT *
FROM (
SELECT login_time
FROM tblname
WHERE emp_code = 123
ORDER BY login_time DESC
) t
WHERE ROWNUM = 2
答案 1 :(得分:1)
尝试使用WHERE子查询,如下所示:
-webkit-transform: translateZ(0);
-moz-transform: translateZ(0);
-ms-transform: translateZ(0);
-o-transform: translateZ(0);
transform: translateZ(0);