SQL如何选择最近的日期项
您好,我有一个包含列的表:
*使用 oracle
ID NUMBER
USER_ID NUMBER
DATE_ADDED DATE
DATE_VIEWED DATE
DOCUMENT_ID VARCHAR2
URL VARCHAR2
DOCUMENT_TITLE VARCHAR2
DOCUMENT_DATE DATE
我想知道如何获取给定用户最近添加的文档。
Select * FROM test_table WHERE user_id = value AND (do something with date_added column)
谢谢
Hello I have a table with columns:
*using oracle
ID NUMBER
USER_ID NUMBER
DATE_ADDED DATE
DATE_VIEWED DATE
DOCUMENT_ID VARCHAR2
URL VARCHAR2
DOCUMENT_TITLE VARCHAR2
DOCUMENT_DATE DATE
I want to know how i can get the most recently added document for a given user.
Select * FROM test_table WHERE user_id = value AND (do something with date_added column)
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
不确定确切的语法(您使用 varchar2 类型,这意味着不是 SQL Server,因此是 TOP),但您可以对 MySQL 使用 LIMIT 关键字:
或者 Oracle 中的 rownum
如果是 DB2,我不确定它是 TOP、LIMIT 还是 rownum...
Not sure of exact syntax (you use varchar2 type which means not SQL Server hence TOP) but you can use the LIMIT keyword for MySQL:
Or rownum in Oracle
If DB2, I'm not sure whether it's TOP, LIMIT or rownum...
使用 SQL Server 尝试:
With SQL Server try:
您尚未指定如果同时添加多个文档,查询应返回什么内容,因此此查询假设您希望返回所有文档:
此查询只会遍历一次数据。
You haven't specified what the query should return if more than one document is added at the same time, so this query assumes you want all of them returned:
This query will only make one pass through the data.
假设您的 RDBMS 知道窗口函数,并且 CTE 和 USER_ID 是患者的 ID:
我假设您想按 DOCUMENT_DATE 排序,如果需要,您可以轻松更改它。如果您的 RDBMS 不知道窗口函数,则必须执行连接:
不过最好告诉我们您的 RDBMS 是什么。此查询为每个患者选择最近的日期,您可以为给定患者添加条件。
Assuming your RDBMS know window functions and CTE and USER_ID is the patient's id:
I assumed you wanted to sort by DOCUMENT_DATE, you can easily change that if wanted. If your RDBMS doesn't know window functions, you'll have to do a join :
It would be good to tell us what your RDBMS is though. And this query selects the most recent date for every patient, you can add a condition for a given patient.