假设您只能使用这种语法(不能使用 MAX 或 MIN 之类的聚合函数,也不能使用 GROUP BY 子句;请不要问我为什么):
{SQL query} ::= SELECT [DISTINCT | ALL] [TOP {integer}]
{select_list}
FROM {table_reference}
[WHERE {search_condition}]
[ORDER BY {orderby} { ',' {orderby} } ]
假设我们有一个 ITEM 表,其中的标识符称为 ITEM_ID。对于给定的 ITEM_ID,您可以有许多行具有相同的 ITEM_ID 但不同的 SHIP_DATE。给定先前的语法,您将如何编写查询以仅返回具有最新 SHIP_DATE 的项目?
我已经尝试使用 TOP N(检索结果集中的第一行)和 ORDER BY(从最大 SHIP_DATE 到最小 SHIP_DATE 排序)。有什么想法或建议吗?
我尝试的是这样的:
SELECT TOP N * FROM ITEM WHERE ITEM_ID='X' ORDER BY SHIP_DATE DESC
实际上,前面的查询似乎正在工作,但我想知道是否有更好的方法来做到这一点。
这不是家庭作业,我需要使用支持的 FileNet P8 语法创建查询:http: //publib.boulder.ibm.com/infocenter/p8docs/v4r5m1/index.jsp ?topic=/com.ibm.p8.doc /developer_help/content_engine_api/guide/query_sql_syntax_ref.htm